delphi4arab منتديات دلفي للعرب
انشاء حدث للزر اثناء التنفيذ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : انشاء حدث للزر اثناء التنفيذ (/showthread.php?tid=11765)



انشاء حدث للزر اثناء التنفيذ - Delphi4Us - 17-01-2022


.rar   ButtonEvent.rar (الحجم : 56.92 ك ب / التحميلات : 18) السلام عليكم

اذا اردت ان تنشي حدث لزر برمجته وقت التشغيل ستكتب شي مثل :

كود :
Button:=TButton.Create(nil); Button.OnClick :=   Button1Click  ;

والاجراء الموجه له هو

كود :
procedure  Form1.Button1Click(Sender: TObject) ; begin end;

هنا لا مشكلة وعندما تكون تبرمج داخل Form ما ولكن المشكلة التي واجهتني اثناء تنفيذ هذا في وحدة غير مرئية 
أي Unit عادية بحيث يكون الاجراء الموجه له هو :
كود :
procedure  Button1Click(Sender: TObject) ; begin end;

دائما رسالة الخطاء هي

إقتباس :[dcc32 Error] UntCommon.pas(75): E2009 Incompatible types: 'method pointer and regular procedure'


في النمودج Form1 يعمل في الوحدة Unit1 التي لا تحمل خصائص وليس لها واجهة او شكل لا يعمل

المثال في المرفقات

.rar   ButtonEvent.rar (الحجم : 56.92 ك ب / التحميلات : 18)


RE: انشاء حدث للزر اثناء التنفيذ - محمد عبد العزيز - 18-01-2022


وعليكم السلام

جرب هذا

كود :
procedure TForm1.FormCreate(Sender: TObject); var M: TMethod; begin Button1.OnClick:= ButtonClick ; M.Data := nil; M.Code := @Button12Click; Button2.OnClick := TNotifyEvent(M); end;



RE: انشاء حدث للزر اثناء التنفيذ - AX302 - 18-01-2022

السلام عليكم 
ادا كنت تريد وضع كل شئ في وحدة جديدة ، يجب  عليك انشاء كلاس جديد و قم بوضع تلك الدالة الخاصة ب onclick داخلها
كود :
procedure  Button1Click(Sender: TObject) ;



RE: انشاء حدث للزر اثناء التنفيذ - Delphi4Us - 18-01-2022

شكرا اخ محمد هذا بالضبط ما احتاج