delphi4arab منتديات دلفي للعرب
كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ (/showthread.php?tid=407)



كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - kachwahed - 08-01-2009

بارك الله فيك على التوضيح.
وكيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟


كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - محمد عبد العزيز - 09-01-2009


TNotifyEvent نوع حذث
اي ما هو الا اجراء
كود :
TNotifyEvent = procedure (Sender: TObject) of object;

فماذا تقصد بالكتابة في المتغير ؟ اوضح ما تريد فعله



كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - kachwahed - 10-01-2009

بارك الله فيك على الرد.
الذي كنت أقصد أن نقوم بإنشاء حدث في زمن التشغيل (at runtime) ثم نجعل أحد المكونات يأخذ هذا الحدث.
مثلا أنشأنا حدث (MyEvent: TNotifyEvent) يمكننا أن نجعله يأخذ حدث آخر (MyEvent:=Button1.OnClick)،
فهل يمكننا أن نكتب فيه إجراءات وأوامر لنستعملها لاحقا (MyEvent:=...???)
وشكرا جزيلا لك أخي المشرف.


كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - محمد عبد العزيز - 10-01-2009

تقصد شيئ مثل هذا ؟
كود :
MyEvent := Button1.OnClick; Button2.OnClick := MyEvent;



كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - kachwahed - 10-01-2009

هذا أعرفه أنا قلته...
لست أعني ذلك بل أن أجعله يأخذ قيمة أخرى...
بعبارة أخرى أن يكون له حدث مستقل به لم يأخذه من أي مكون.
أقصد شيء مثل هذا:
PHP كود :
MyEvent :=
  
begin
   
...// while ...do ...
   
...//if ... then
   
...// for ...:= to ... do ...
  
end;
Button1.OnClick := MyEvent; 
أعتقد أن الفكرة اتضحت الآن Big Grin، بارك الله فيك أخي المشرف.


كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟ - kachwahed - 07-02-2011

ينبغي فقط إضافة الحدث إلى النموذج الأصلي (TForm1 في المثال)
PHP كود :
procedure TForm1.MyEvent(Sender: TObject);
begin
  ShowMessage
('Message from MyEvent');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Button1
.OnClick := MyEvent;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage
('Message from Original Event');
end;