delphi4arab منتديات دلفي للعرب

نسخة كاملة : انشاء حدث للزر اثناء التنفيذ
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
[attachment=4587]السلام عليكم

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

كود :
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 التي لا تحمل خصائص وليس لها واجهة او شكل لا يعمل

المثال في المرفقات
[attachment=4587]

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

جرب هذا

كود :
procedure TForm1.FormCreate(Sender: TObject); var M: TMethod; begin Button1.OnClick:= ButtonClick ; M.Data := nil; M.Code := @Button12Click; Button2.OnClick := TNotifyEvent(M); end;
السلام عليكم 
ادا كنت تريد وضع كل شئ في وحدة جديدة ، يجب  عليك انشاء كلاس جديد و قم بوضع تلك الدالة الخاصة ب onclick داخلها
كود :
procedure  Button1Click(Sender: TObject) ;
شكرا اخ محمد هذا بالضبط ما احتاج