ورود

View Full Version : نوشتن كد event و اختصاص آن به كامپوننت مشخص



mahdy.asia
چهارشنبه 20 بهمن 1389, 14:36 عصر
من تعداد كامپوننت panel روي فرم دارم كه از يك فرم ديگر مي خواهم Event Onclick را براي آن كدنويسي كنيم اين كار را انجام دادم.
بدون اشكال سيستم كار مي كند. اما ديگر از فرم اصلي روي Event Onclick نمي تونم كد نويسي كنم
من كد Event Onclick كه در هر دو فرم نوشته شده است را نياز دارم

form 1
procedure TF_CodeForm.Panel1Click(Sender: TObject);
begin
code1
end;

form2
Panel1.onclick := codeEvent;

procedure TF_CodeForm.codeEvent(Sender: TObject)
begin
code2
end;
من مي خواهم هم كد 1 هم كد 2 اجرا شود

BORHAN TEC
چهارشنبه 20 بهمن 1389, 18:32 عصر
این سبک کد نویسی به هیچ عنوان صحیح نیست و به طراحی غلط برنامه باز می گردد.

MohsenB
پنج شنبه 21 بهمن 1389, 22:05 عصر
همون طور که آقا شاهین عزیز گفتن این روش خوبی نیست بهتره:



روال دورم رو از تو روال اول صدا بزنید .
دوتاشو یکی کنید .
اگر منظورتون همزمان اجرا شدنه از Thread استفاده کنید

Mahmood_M
جمعه 22 بهمن 1389, 00:03 صبح
پست آخر این تاپیک (http://barnamenevis.org/showthread.php?250803-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%DA%A9%D8%AF-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D9%87%D8%A7%DB%8C-%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF-%D9%87%D8%A7%DB%8C-%D9%81%D8%B1%D9%85-%D8%AF%D8%B1-%D8%B2%D9%85%D8%A7%D9%86-%D8%A7%D8%AC%D8%B1%D8%A7) رو نگاه کنید ...

mahdy.asia
شنبه 23 بهمن 1389, 18:28 عصر
من یک فرم پرنت می خواهم ایجاد کنم که وقتی برنامه نویس از آن ارث می برد کامپوننت panel را که روی آن می چیند بدون کد نویسی هنگام اجرا با کلیک روی هر پنل رنگ تمامی پنل های روی فرم غیر فعال و تنها پنلی که روی آن کلیک شده است فعال شود
چون این کد می بایست در فرم پرنت نوشته شود در تابع
procedure TF_CodeForm.codeEvent(Sender: TObject)
begin
code2
endکامپوننت ها را جستجو می کنم و کامپوننتی که از نوع panel است event نوشته شده را (code2) را به onclick آن اختصاص می دهم حالا اگر کاربر هم خواسته باشد روی onclic کدی بنویسد چطور می توان آن کد را هم اجرا نمود منظور کد Code1 است

procedure TF_CodeForm.Panel1Click(Sender: TObject);
begin
code1
end;