كتآبة دآلة تغنيني عن تكرار بعض العمليّات
#1
السلام عليكم ورحمة الله,

اخوآني الكرام, احآول عمل دآلة تغنيني عن بعض الأكوآد المتكررة,
في البرنآمج الذي اعمل عليه يتكرر نفس الأمر بالنسبة لعدة Labels الا وهو استغلآل OnMouseDown و onMouseUp,

في حآلة OnMouseDown يكون الكود هو التآلي,
كود :
Label1.Font.Color := clred;

وفي حآلة OnMouseUp يكون الكود,
كود :
Label1.Font.Color := clBlue;


بالإضآفة الى ذلك, يكون ال Cursor = crHandPoint
وهذا الأمر ينطبق على اكثر من 50 Label في المشورع,

----

محآولتي هو التآلي,
عملت Procedure وهو التآلي, بالنسبة OnMouseDown
كود :
Procedure LinkRed(Sender: TObject); begin if (Sender is Tlabel) then begin With (sender as Tlabel) do font.Color := clred; end; end;

وعملت Procedure و, بالنسبة OnMouseUp
كود :
Procedure LinkBlue(Sender: TObject); begin if (Sender is Tlabel) then begin With (sender as Tlabel) do font.Color := clBlue; end; end;

هذا الحل يعمل, لكن مع كل label احتاج الى الكتآبة في حدثين 2,
الأول اكتب فيه LinkRed و الثآني اكتب فيه LinkBlue,

--

المطلوب هو التآلي,
اود كتآبة نفس الأمر في كل الأحداث,
يعني اود عمل Procedure يدمج LinkRed مع LinkBlue ونسمّيه ContolLink
بدآخله يكون الأمر انه يفحص مثلا من اي حدث جآء هذا الطلب وبعدها يعمل المطلوب منه عمله,
مثال حتى تتضح الصورة,
كود :
procedure ControlLink(Sender: TObject); begin if OnMouseDown then LinkRed; if OnMouseUp then LinkBlue end;


وبهذا اكتب في كل حدث الأمر ContolLink و الدآلة تتكفل في البآقي,
بارك الله لك,

والسلام عليكم ورحمة الله
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد


الردود في هذا الموضوع
كتآبة دآلة تغنيني عن تكرار بعض العمليّات - بواسطة AL-MOB4RM3G - 17-02-2010, 06:23 AM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم