PDA

View Full Version : create component و event



sun
شنبه 24 دی 1384, 13:30 عصر
دوستان عزیز من میخوام کامپوننت را با کد create کنم و از event اون استفاده کنم
لطفا به من کمک کنید که به چه صورت من میتونم event های اونو تعریف کنم

باتشکر

sun
شنبه 24 دی 1384, 15:26 عصر
دوستان من منتظر جوابتونم خیلی برام مهمه لطفا کمک کنید

m-khorsandi
شنبه 24 دی 1384, 15:46 عصر
جستجو کنید.

Hadizadeh
شنبه 24 دی 1384, 15:49 عصر
مثال:
object.onclick=myfunction(sender)

sun
شنبه 24 دی 1384, 16:01 عصر
من 3 روز دارم help دلفی رو بالا پایین میکنم چیزی دستگیم نشد
آقای hadizade میشه بیشتر توضیح بدهین

mzjahromi
شنبه 24 دی 1384, 17:03 عصر
اگر همینجا جستجو کنید پیدا می کنید
در هر حال
1- یک تابع بنویسید که آرگومانهاش با آرگومانهای کامپوننت مورد نظرتون یکی باشه
بعد همون کدی که دوستمون نوشتن رو بنویسید


edit1.Onchage:=edit1Change;

Hadizadeh
شنبه 24 دی 1384, 17:31 عصر
آفرین. به عنوان مثال ، روی فرم دابل کلیک کن. آرگومان پروسیجری(onclick) که ظاهر میشه ، همون چیزیه که باید به عنوان آرگومان تابع Myfunction عبور بدی. از تایپ انگلیسی تو این فروم متنفرم. چون ترازبندی هاش به هم می خوره. اگه این مشکل رو نداشتم یه مثال واقعی برات می زدم!! آقای mzjahromi اون کد بالا رو که اینقدر خوشگل مامانی نوشتی با کدوم تگ نوشتی؟ با
, نوشتی؟

mzjahromi
شنبه 24 دی 1384, 19:23 عصر
آره دوست عزیز با Code

sun
یک شنبه 25 دی 1384, 08:52 صبح
دوستان عزیز من مثلا edit1 را create می کنم ولی نمی دونم چرا روی فرم قرار نمیگیره.
در مورد پارامتر هم (Sender: TObject) اگه منظورتون اینه بازم جواب نمیده .میگه پارامت کافی نیست.
آیا مثلا edit1را باید بصورت public تعریف کنم
باتشکر از جوابهای خوب شما

m-khorsandi
یک شنبه 25 دی 1384, 09:32 صبح
Parent رو هم مقدار دادید؟

mzjahromi
یک شنبه 25 دی 1384, 09:37 صبح
دوستان عزیز من مثلا edit1 را create می کنم ولی نمی دونم چرا روی فرم قرار نمیگیره.
در مورد پارامتر هم (Sender: TObject) اگه منظورتون اینه بازم جواب نمیده .میگه پارامت کافی نیست.
آیا مثلا edit1را باید بصورت public تعریف کنم
باتشکر از جوابهای خوب شما

من تو یک تاپیک دیگه به همچین سوالی جواب دادم.کد کاملش رو هم نوشتم(خیلی وقت نیست) همون طور که آقای خرسندی گفتن مربوط میشه به Parent و ربطی به Public و غیره نداره(البته به احتمال زیاد) Search Please

Hadizadeh
یک شنبه 25 دی 1384, 10:18 صبح
جواب:
edit1.parent:=form1

sun
یک شنبه 25 دی 1384, 11:08 صبح
از کمک همه دوستان خیلی ممنون با parent مشکلم حل شد
ا در مورد کامپوننهای غیر ویژوال چگونه ما میتونم از event اونا استفاده کنیم البته با create کردن

mzjahromi
یک شنبه 25 دی 1384, 11:48 صبح
در مورد کامپوننهای غیر ویژوال چگونه ما میتونم از event اونا استفاده کنیم البته با create کردن

فرقی نمی کنه. روش کار یکیه.

sun
دوشنبه 26 دی 1384, 16:25 عصر
مرسی از همه دوستان حلا من کامپونت مورد نظر را کجا create کنم که ایونتهای اون برای دیگر procedur ها و ایونتهای دیگر قابل استفاده باشد
باسپاس فراوان

mzjahromi
دوشنبه 26 دی 1384, 16:39 عصر
اول که ترجیجا باید تو OnCreate فرمت تعریف کنی(یا هر جای دیگه که لازم داری)
دوم اینکه نحوه دسترسی به کامپوننت ایجاد شده مثل کامپوننتهای ایجاد شده در زمان طراحی نیست و برای دسترسی بهشون باید خودت یک روش پیدا کنی (روش زیاده) بستگی به مورد استفاده ات داره

sun
دوشنبه 26 دی 1384, 16:56 عصر
من یه کامپوننت button کرییت کردم بعد یه پروسیجر تعریف کردم با همون پارامترهایی که تو ی ایونت onclice کامپوننت button هست بعد این کد را نوشتم
procedure ButClick(Sender: TObject);
procedure form1.ButClick(Sender: TObject);
begin
ShowMessage('hello');
end;

button.OnClick;=ButClick;

وقتی خط آخر کامپایل میشه این پیغام خطا رو میده لطفا آقای mzjahromi ویا دیگر دوستان عزیز بفرمایید اشکال کار کجاست
not enough actual parameters

mzjahromi
دوشنبه 26 دی 1384, 19:49 عصر
تنها اشکالی که من میبینم اینه که بجای TForm1 نوشتی Form1
یعنی اینجوری باید بنویسی


procedure TForm1.ButClick(Sender: TObject);
begin
ShowMessage('hello');
end;

button.OnClick:=ButClick;

sun
سه شنبه 27 دی 1384, 09:18 صبح
با tform 1 هم جواب نمیده بازم همون ایرادو داره !!!!!!!
حالا چی کار کنم ؟؟؟؟؟؟؟کمک لطفا

sun
سه شنبه 27 دی 1384, 09:20 صبح
درست شد بچه ها متشکرم د بچه ها متشکرم د بچه ها متشکرم د بچه ها متشکرم

mzjahromi
سه شنبه 27 دی 1384, 09:21 صبح
میشه کل کدت رو Attach کنی؟

sun
سه شنبه 27 دی 1384, 12:23 عصر
button.OnClick;=ButClick;
اگه دقت کنید من بجای := البته با عرض شرمندگی ;= تایپ می کردم