1. الفرق بين المالك والوالد:
تشير الخاصية الأصل إلى حاوية المكون، ولا يمكن عرض المكون ونقله إلا ضمن هذا النطاق. مثال على النحو التالي:
(1) في نموذج Form1، ضع Panel1 وقم بتكبير Panel1.
(2) ضع Button1 على اللوحة 1؛
(3) ضع Button2 على Form1.
الآن إذا قمت بنقل Panel1، فإن Button1 يتحرك مع Panel1 وذلك لأن الأصل الخاص بـ Button1 هو Panel1. الآن قم بنقل Button2 إلى Panel1، ثم لا يتحرك Button2 معه مرة أخرى، وذلك لأن الأصل الخاص بـ Button2 هو Form1. بالإضافة إلى تصميم النموذج، يجب عليك الانتباه إلى أصل المكون. عند إنشاء مكون ديناميكيًا، يجب عليك أيضًا الإشارة إلى أصل المكون. على سبيل المثال، تابع العملية في المثال أعلاه:
1) الإجراء Tform1.Button2click(Sender:Tobjet);
2) فار
3) الزر: زر؛
4) ابدأ
5) الزر: Tbutton.cerate(self);
6) Button.parent=panel1;
7) Button.lleft=0;
8) Button.top=0;
9) Button.caption:='OK';
10) النهاية؛
عند الضغط على Button2، سيتم إنشاء زر على Panel1، وإذا تم تغيير الجملة 6 إلى Button.parent:=self؛ عند الضغط على Button2، سيتم إنشاء زر على Form1. إذا قمت بحذف الجملة 6، فلن يحدث شيء عند الضغط على Button2 وذلك لأن طريقة الإنشاء لا يمكنها معرفة المكان الذي يجب أن يتم عرض المكون فيه.
تشير سمة المالك إلى مالك المكون، وهو المسؤول عن إنشاء المكون وإصداره. كما في المثال أعلاه، المالك الافتراضي للنظام لجميع المكونات الموجودة في النموذج هو النموذج، ومالك النموذج هو التطبيق. بالمناسبة، يجب أن تحتوي طريقة الإنشاء على معلمة تمثل مالك المكون. في المثال أعلاه، مالك المكون هو النموذج، وهو ذاتي.
تعتبر السمة الأصل وسمة المالك من سمات وقت التشغيل ولا يمكن تعيينهما إلا من خلال التعليمات البرمجية أثناء مرحلة وقت التشغيل.
2. الفرق بين الذات والمرسل:
في جدول معلمات معالج الأحداث، يوجد معلمة واحدة على الأقل هي المرسل، والذي يمثل المكون الذي يقوم بتشغيل معالج الحدث. في المثال أعلاه، يشير المرسل إلى Button2. باستخدام معلمة المرسل، يمكن لمكونات متعددة مشاركة نفس معالج الحدث. كمثال:
الإجراء Tform1.Buttonclick(Sender:Tobject);
يبدأ
إذا كان المرسل = Button1 ثم
Label1.caption:='انظر إلى الزهور وهي تتفتح وتتساقط أمام الملعب
′ Else Label2.caption:=‘النظر إلى السحب المتدحرجة في السماء’
نهاية؛
في هذا المثال، يتشارك Button1 وButton2 في معالج الأحداث Buttonclick.
تشير الذات إلى الفئة التي يتم برمجة البرنامج فيها. في دلفي، معظم البرمجة تقع ضمن نطاق النموذج. لذلك، تشير الذات إلى النموذج. يمكننا أن نرى أي مكون يمثله self في تعريف الوظيفة أو الإجراء، أي أن self يمثل المكون قبل الرقم '.' على سبيل المثال، في المثال الأول، يمثل self Tform1. بالإضافة إلى ذلك، تجدر الإشارة إلى أنه لا يمكن استخدام self إلا في الأساليب الصفية، وليس في الإجراءات أو الوظائف. الاستخدام التالي خاطئ:
الوظيفة a1(B:عدد صحيح):عدد صحيح؛
يبدأ
…
الزر:=tbutton.create(self);……
نهاية؛
3. الفرق بين ارتفاع العميل والارتفاع وعرض العميل والعرض:
بالنسبة للمكونات العامة، الارتفاع هو Clientheight، والعرض هو Clientwidth بالنسبة للنماذج، الارتفاع هو الارتفاع بما في ذلك شريط العنوان، ويشير Clientheight إلى ارتفاع منطقة العميل الخاصة بالنموذج. بنفس الطريقة، يحدد Clientwidth عرض منطقة العميل للنموذج.
كما يتبين من البيان أعلاه، فهم الاختلافات بين Ower و Parent، Self و Sender، Clientheight و Height، Clientwidth و Width مهم للبرمجة الصحيحة في دلفي.