مناسبة للمبتدئين في دلفي ، الأشخاص الذين يعانون من المعرفة والخبرة الموجهة نحو الكائن في برمجة Java أو VC.
غالبًا ما نرى رمزًا مثل هذا في فئة Delphi: خاصية خاصية الخاصية نوع اسم القراءة سلسلة 1 كتابة السلسلة 2
قد تكون أسماء السمات هنا مختلفة. كل شيء في هذا التنسيق: اسم الخاصية اسم القراءة سلسلة 1 كتابة السلسلة 2
أخذت الممتلكات المتبقية: integer قراءة فليفت setLeft ؛ اليسار هو خاصية عدد صحيح. تعلن القراءة عن المتغير أو الطريقة للوصول إلى المتغير ، ويعلن الكتابة عن المتغير أو الطريقة للوصول عند تعديل المتغير. ملاحظة: يمكن أن يكون متغيرًا أو طريقة. هنا هو متغير يسمى fleft. لغرض التغليف ، عادة ما نضع مثل هذه المتغيرات في منتصف القطاع الخاص.
FLOFT: رمز INTEGER (للحصول على عادات التسمية ، نسمي هذا المتغير مثل رأس المال F قبل اسم السمة). وبهذه الطريقة ، عندما تقرأ العقار ، فأنت تصل فعليًا إلى قيمة FLOFT. حتى تتمكن من كتابة بعض الطرق لتعديل Flex وتعديل قيمة اليسار بشكل غير مباشر. ثم ننظر إلى Setleft مرة أخرى إفادة:
الإجراء setLeft (القيمة: عدد صحيح) ؛
وتنفيذ الكود التالي:
الإجراء tcontrol.setleft (القيمة: عدد صحيح) ؛
يبدأ
setBounds (القيمة ، ftop ، fwidth ، fheight) ؛
تشمل (fscalingflags ، sfleft) ؛
نهاية؛
إذا قمت بكتابة الكود التالي للتغيير: Control1.Left: = 23 ، فإن البرنامج يستدعي الوظيفة (23) ، فهي وظيفة تغيّر المنطقة هنا. إلى اليسار ، سيغير حجم المنطقة وفقًا لليسرى الجديدة ، وتغير هذه الوظيفة أيضًا حجم FLOFT.
الإجراء tcontrol.setBounds (aleft ، at app ، awidth ، aheight: integer) ؛
يبدأ
إذا checkNewSize (awidth ، aheight) و
((aleft <> fleft) أو (فوق <> ftop) أو
(awidth <> fwidth) أو (aheight <> fheight)) ثم
يبدأ
invalidateControl (مرئي ، خطأ) ؛
FLOFT: = aleft ؛
ftop: = atop ؛
fwidth: = awidth ؛
fheight: = aheight ؛
updateanchorrules
تبطل
أداء (wm_windowposchanged ، 0 ، 0) ؛
stermsalign ؛
إذا لم يكن (csloading في componentState) ثم تغيير الحجم ؛
نهاية؛
نهاية؛
وبهذه الطريقة ، يبدو أن قيمة السمة تتغير فقط من خلال عمليات المهمة. يمكن أن تكون القراءة والكتابة متغيرات ، أو وظائف ، اعتمادًا على التصميم الخاص بك. بالطبع يمكنك كتابة هذا: خاصية خاصية خاصية نوع خاصية الاسم قراءة المتغير 1 كتابة متغير 2. يمكن أن يكون المتغير 1 والمتغير 2 هو نفسه. يمكنك أيضًا القيام بهذا الخاصية خاصية الخاصية نوع خاصية اسم طريقة القراءة 1 طريقة الكتابة 2. أي مزيج لك. ولكن هناك شيئان يجب ملاحظة:
1. تعتمد قواعد التسمية على العادات وسهلة القراءة.
2. إذا كان متغيرًا ، فيجب أن يكون النوع هو نفس نوع السمة.
غالبًا ما نستخدم سمات الحدث للمكونات ، مثل أحداث النقر ، ولكن من الصعب علينا أن نرى من السطح كيف يتم استدعاؤه وكيف يتم تشغيله. سأجيب عليك أدناه.
في مفتش كائن مدير الممتلكات ، نرى أن اسم الطريقة يتوافق مع يمين صفحة الحدث OnClick. في الواقع ، يمكننا إعطاء حدث مكون يتوافق مع الطريقة السابقة. خذ نموذجًا كمثال Form1. لاحظ أن معلمات الدخول للطريقة ذات أهمية خاصة ، وهنا (المرسل: TOBJECT)
دعونا نستخدم tcontrol كمثال ، ونجد هذا الرمز:
Property Onmousedown: Tmousevent قراءة Fonmousedown كتابة fonmousedown ؛
tmouseevent = الإجراء (المرسل: TOBJECT ؛ زر: tmousebutton ؛ Shift: tshiftstate ؛ x ، y: integer) of Object ؛
كما ترون ، إنها في الواقع وظيفة ، ولكن الجزء الأزرق يحد من معلمات الدخول. ثم نخصص Form1. ثم نكتب وظيفة تعترض رسائل الماوس واتصل بشكل مباشر أو غير مباشر بشكل مباشر أو بشكل غير مباشر ، وبعد ذلك سنتوافق مع الرسالة ووظيفة المعالجة. هنا ، هناك العديد من الطبقات التي تسمى بشكل غير مباشر ، والتي تستغرق وقتًا طويلاً وتتضمن نوع الرسالة.
فيما يلي عملية مكالمة غير مباشرة.
الإجراء wmrbuttondblclk (رسالة var: twmrbuttondblclk) ؛
الإجراء tcontrol.wmrbuttondblclk (رسالة var: twmrbuttondblclk) ؛
يبدأ
ورث
DOMUSEDOWN (Message ، Mbright ، [ssdouble]) ؛
نهاية؛
الإجراء DOMOUSEDOWN (VAR Message: Twmmouse ؛ Button: TmouseButton ؛
التحول: Tshiftstate) ؛
الإجراء tcontrol.domousedown (var message: twmmouse ؛ button: tmousebutton ؛
التحول: Tshiftstate) ؛
يبدأ
إذا لم يكن (csnostdevents في ControlStyle) ثم
مع رسالة تفعل
إذا (العرض> 32768) أو (الارتفاع> 32768) ثم
مع calccursorpos تفعل
Mousedown (Button ، keystoshiftstate (Keys) + Shift ، x ، y)
آخر
Mousedown (زر ، keystoshiftstate (Keys) + Shift ، message.xpos ، message.ypos) ؛
نهاية؛
الإجراء mousedown (زر: tmouseButton ؛ Shift: TshiftState ؛
x ، y: عدد صحيح) ؛
الإجراء tcontrol.mousedown (زر: tmousebutton ؛
Shift: TshiftState ؛
يبدأ
إذا تم تعيينه (fonmousedown) ثم fonmousedown (الذات ، الزر ، التحول ، x ، y) ؛
نهاية؛
إذا كنت تكتب المزيد من الفصول الدراسية الخاصة بك ، فستجد مدى ملاءمة القيام بذلك ، دون كتابة getleft ، setleft مثل Java ، ثم وضع النص في أساليب مختلفة. منها مجرد استدعاء CONTROL1.TEXT للوصول ، CONTROL1.TEXT: = "سلسلة معينة" لتعديل قيمتها.
فيما يتعلق بالرسائل المعالجة ، تعلن الفئة الأساسية خصائص مثل OnClick و OnMousedown وفقًا لما إذا كنت ترغب في استخدامها ، فيمكنك إعلانها كما تم نشرها ويمكن أن تظهر في مفتش الكائن ، ثم كتابة طريقة المعالجة بشكل مريح ، أنت لا يمكن الكشف عنها.
بحثي ليس عميقًا ، يرجى تصحيحني إذا كان لديك أي شيء غير مناسب :). مرحبًا بكم في [email protected]