المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟


kachwahed
08-01-2009, 12:21 PM
بارك الله فيك على التوضيح.
وكيف يمكن الكتابة في متغير من النوع TNotifyEvent ؟

B.M.AbdelAziZ
09-01-2009, 11:01 AM
TNotifyEvent نوع حذث
اي ما هو الا اجراء

TNotifyEvent = procedure (Sender: TObject) of object;


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

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

B.M.AbdelAziZ
10-01-2009, 12:11 PM
تقصد شيئ مثل هذا ؟

MyEvent := Button1.OnClick;
Button2.OnClick := MyEvent;

kachwahed
10-01-2009, 01:43 PM
هذا أعرفه أنا قلته...
لست أعني ذلك بل أن أجعله يأخذ قيمة أخرى...
بعبارة أخرى أن يكون له حدث مستقل به لم يأخذه من أي مكون.
أقصد شيء مثل هذا:
MyEvent :=
begin
...// while ...do ...
...//if ... then
...// for ...:= to ... do ...
end;
Button1.OnClick := MyEvent;

أعتقد أن الفكرة اتضحت الآن :D، بارك الله فيك أخي المشرف.

kachwahed
07-02-2011, 05:13 PM
ينبغي فقط إضافة الحدث إلى النموذج الأصلي (TForm1 في المثال)

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;