PDA

View Full Version : انجام دو عملکرد با یک بار نوشتن



moohssenn
جمعه 28 مهر 1385, 12:15 عصر
اگه بخوایم دستوراتی مثلا هم در OnMouseMove و هم در Onclick یک عملکرد اجرا شود بدون اینکه این دستورات را 2 با در برنامه بنویسیم آیا راهی وجود دارد ؟
منظورم این است که دریکی از Action های مورد نظر بنویسیم و Action دیگر را به آن آدرس دهیم

fotondiamond
جمعه 28 مهر 1385, 12:54 عصر
میتونید کد ها تون رو مثلا در OnClick بنویسید بعد
وقتی ComboBox جلوی رخداد OnMouseMove رو باز کنید اونجا میتونید رخداد OnClick بالایی رو انتخاب کنید

moohssenn
جمعه 28 مهر 1385, 22:24 عصر
میشه بیشتر توضیح بدید

lajevardi
شنبه 29 مهر 1385, 02:02 صبح
باید handler رویداد هارو بهم نسبت بدین.
به عنوان مثال یک عنصر TEdit و رویداد های onClick و onChange رو در نظر بگیرین:


procedure TfrmMain.Edit1Click(Sender: TObject);
begin
ShowMessage('thefallifollowproudly');
end;

procedure TfrmMain.Edit1Change(Sender: TObject);
begin
form1.Edit1Click(frmMain);
end;


frmMain اسم فرم اصلی یه http://qsmile.com/qsimages/83.gif

Mahmood_M
شنبه 29 مهر 1385, 06:52 صبح
سلام
راه دیگش اینه که کدهاتون رو توی یه Procedure تعریف کنید و بعد اون رو توی رویدادها فراخونی کنید ...
یه راهش هم اینه :
BitBtn1.OnClick:= BitBtn2.OnClick;
.......
موفق باشید ...

dkhatibi
شنبه 29 مهر 1385, 19:45 عصر
پست شماره ی 2 جواب کاملی داد.
وقتی صفحه ی رویدادهای شی مورد نظر را باز می کنید روی رویداد مورد نظر خود کلیک کنید.جلوی آن یک CompoBox موجود است ؛فلش رو به پایین را کلیک کنید و از بین رویدادهایی که قبلا نوشته اید رویداد مورد نظر را می توانید انتخاب کنید.

fotondiamond
شنبه 29 مهر 1385, 19:54 عصر
مثلا اول روی OnClick دوبارکلیک کن واین کد رو برای OnClick بنویس:


procedure TfrmMain.Edit1Click(Sender: TObject);
begin
ShowMessage('سلام');
end;

حالا روی OnMouseMOve کلیک کن ، به محض اینکه کلیک کردی COmboBox جلوی اون نمایش داده میشه ، حالا کوبوباکس رو باز کن و دنبال این تابع بگرد Edit1Click و اون رو انتخاب کن، حالا برا هر دو تا رخداد بالا همون کد Showmessage اجرا خواهد شد.