الطرق الأساسية لكتابة الضوابط في دلفي
كمبرمج دلفي، إذا كنت ترغب في تحسين مستوى البرمجة الخاص بك، فيجب عليك إتقان كيفية كتابة عناصر التحكم. ستقدم هذه المقالة بعض الأساليب والأنماط الأساسية لعناصر التحكم في الكتابة للمبتدئين من خلال مثال بسيط.
يسمى عنصر التحكم هذا TLeiLabel، ويضيف وظيفتين عمليتين على أساس TLabel: إحداهما هي جعل النص له شكل ثلاثي الأبعاد، والأخرى هي جعل النص يحتوي على سمة ارتباط تشعبي. دعونا ننفذ هذه الوظائف خطوة بخطوة.
1. اجعل النص ذو شكل ثلاثي الأبعاد
قم أولاً بتعريف النوع T3DEffect والسمة Style3D كما يلي:
T3DEffect=(عادي، مرتفع، منخفض، مظلل)؛
PROperty Style3D:T3DEffect قراءة FStyle3D كتابة SetStyle3D الافتراضي عادي؛
ثم حدد المتغير بشكل خاص: "FStyle3D:T3DEffect;" وقم بتعيين طريقة SetStyle3D () كما يلي.
الإجراء TLeiLabel.SetStyle3D(القيمة: T3DEffect);
يبدأ
إذا كانت قيمة FStyle3D <> إذن
يبدأ
FStyle3D := value;
يبطل؛ // يشير إلى أنه سيتم إعادة رسم عنصر التحكم
نهاية؛
نهاية؛
بالإضافة إلى ذلك، بالنسبة للنص الذي يحتوي على ظلال، يجب تحديد إزاحات الظل ShadeXOffSet وShadeYOffSet:
الخاصية ShadowXOffSet: قراءة عدد صحيح FXOffSet وكتابة SetFXOffSet الافتراضي 5؛
خاصية ShadowYOffSet: قراءة عدد صحيح FYOffSet كتابة SetFYOffSet الافتراضي -5؛
طريقتا الكتابة SetFXOffSet() وSetFYOffSet() تشبهان SetStyle3D() أعلاه.
لإعادة رسم عنصر تحكم، تحتاج عمومًا إلى زيادة تحميل أسلوب الرسام. هنا نقوم فقط بإعادة رسم النص، ونحتاج فقط إلى زيادة تحميل أسلوب DoDrawText.
يتم وضع إعلان DoDrawText في المحمي:
الإجراء DoDrawText(var Rect: TRect; Flags: Longint override);
هنا يقوم DoDrawText() برسم نص مختلف وفقًا لأربعة أنواع (عادي، مرتفع، غائر، وظل).
2. اجعل النص يحتوي على سمات الارتباط التشعبي
حدد عنوان URL للسمة لتمثيل عنوان URL أو عنوان البريد الإلكتروني المراد ربطه.
عنوان URL للخاصية: قراءة السلسلة FURL والكتابة SetURL؛
اكتب طريقة SetURL كما يلي:
الإجراء TLeiLabel.SetURL(Value: String);
يبدأ
إذا كانت FURL <> Value، فإن FURL := Value؛
إذا FURL <> ' ثم
المؤشر := crHandPoint;
نهاية؛
عند النقر فوق هذا التصنيف، تحتاج إلى فتح متصفح أو أداة إرسال واستقبال البريد، الأمر الذي يتطلب التحميل الزائد لطريقة النقر.
تجاوز الإجراء؛
الإجراء TLeiLabel.Click؛
فار ق: سلسلة؛
يبدأ
النقرة الموروثة؛
إذا FURL = ' ثم اخرج؛
إذا LowerCase(Copy(FURL,1,7)) = 'http://' إذن
ق := فورل
وإلا إذا Pos('@',FURL) <> 0 ثم
s := 'mailto:' + FURL
آخر
s := 'http://' + FURL;
ShellExecute(application.Handle, 'open', PChar(s), NIL, NIL, SW_SHOWNORMAL);
نهاية؛
بالنسبة للارتباطات التشعبية العامة، يتغير لون النص عند تحريك الماوس فيه. ولتحقيق هذه الغاية، أضف السمة HoverColor، التي تشير إلى لون النص عندما يتحرك الماوس.
خاصية HoverColor: قراءة TColor FHoverColor كتابة SetHoverColor الافتراضي clRed؛
حدد أيضًا الإجراءين اللذين يستقبلان رسائل Windows CM_MOUSEENTER وCM_MOUSELEAVE (إدخال الماوس وإخراجه):
الإجراء CMMouseEnter(رسالة فار: TMessage);
الإجراء CMMouseLeave(رسالة var: TMessage);
الإجراء TLeiLabel.CMMouseEnter (رسالة فار: TMessage)؛
يبدأ
إذا كان ممكّنًا ومرئيًا وgetParentForm(Self).نشط بعد ذلك
يبدأ
FFontColor := Font.Color;
// احفظ لون النص
Font.Color := FHoverColor;
// تغيير لون النص
نهاية؛
نهاية؛
الإجراء TLeiLabel.CMMouseLeave (رسالة Var: TMessage)؛
يبدأ
Font.Color:=FFontColor;
// استعادة اللون الأصلي للنص
نهاية؛
من أجل تعيين القيمة الافتراضية للسمة، نحتاج أيضًا إلى التحميل الزائد للمنشئ Create(). لاحظ أنه يجب أولاً استدعاء مُنشئ الفئة الأصلية عند التحميل الزائد للمنشئ. برنامج التحميل الزائد للبنية Create() هو كما يلي:
منشئ TLeiLabel.Create(AOwner: TComponent);
يبدأ
ورثت إنشاء (AOwner)؛
// يجب استدعاء مُنشئ فئة السلف أولاً
FStyle3D := عادي؛
فك أوفست := 5;
FYOffSet := -5;
FHoverColor := clRed;
نهاية؛
وأخيرا، يجب إضافة رمز إلى عنصر التحكم هذا. يمكننا استخدام محرر الصور في دلفي لإنشاء صورة نقطية مقاس 24 × 24 وحفظها كملف DCR. يجب أن يكون اسم الملف هو نفس اسم ملف Pas لعنصر التحكم الاسم وكل الحروف الكبيرة.