حياة

فهم ثوابت مطبوعة في دلفي

فهم ثوابت مطبوعة في دلفي

عندما يستدعي دلفي معالج الأحداث ، يتم مسح القيم القديمة للمتغيرات المحلية. ماذا لو أردنا متابعة عدد المرات التي تم فيها النقر على زر؟ يمكن أن تستمر القيم عن طريق استخدام متغير مستوى الوحدة ، ولكن من الجيد عمومًا حجز متغيرات مستوى الوحدة لمشاركة المعلومات فقط. ما نحتاجه عادة ما يسمى المتغيرات الثابتة أو الثوابت المكتوبة في دلفي.

متغير أو ثابت

يمكن مقارنة الثوابت المكتوبة بالمتغيرات المتغيرة التي تم تحديد قيمها عند الدخول إلى الكتلة (عادةً معالج الأحداث). تتم تهيئة هذا المتغير فقط عند بدء تشغيل البرنامج. بعد ذلك ، تستمر قيمة الثابت المكتوب بين المكالمات المتعاقبة لإجراءاتها.

يعد استخدام الثوابت المكتوبة طريقة نظيفة جدًا لتنفيذ المتغيرات التي تمت تهيئتها تلقائيًا. لتطبيق هذه المتغيرات دون ثوابت مكتوبة ، سنحتاج إلى إنشاء قسم تهيئة يحدد قيمة كل متغير تم تهيئته.

الثوابت المكتوبة المتغيرة

على الرغم من أننا نعلن عن ثوابت مكتوبة في قسم const من الإجراء ، فمن المهم أن نتذكر أنها ليست ثوابت. في أي وقت في التطبيق الخاص بك ، إذا كان لديك وصول إلى المعرف لثابت مكتوب ، فسوف تكون قادرا على تعديل قيمتها.

لرؤية ثوابت مكتوبة في العمل ، ضع زرًا في نموذج فارغ ، وقم بتعيين التعليمة البرمجية التالية إلى معالج أحداث OnClick:

إجراء TForm1.Button1Click (المرسل: TObject) ؛ CONST النقرات: عدد صحيح = 1 ؛ / / ليس ثابت حقيقي ابدأ Form1.Caption: = IntToStr (النقرات) ؛ النقرات: = النقرات + 1 ؛ النهاية;

لاحظ أنه في كل مرة تقوم فيها بالنقر فوق الزر ، تقوم بتكوين زيادة في التسمية التوضيحية بشكل مطرد.
جرب الآن الكود التالي:

إجراء TForm1.Button1Click (المرسل: TObject) ؛ فار النقرات: عدد صحيح ابدأ Form1.Caption: = IntToStr (النقرات) ؛ النقرات: = النقرات + 1 ؛ النهاية;

نحن نستخدم الآن متغيرًا غير مهيأ لعداد النقرات. لاحظ أن القيمة الغريبة في تسمية توضيحية النماذج بعد النقر فوق الزر.

ثابت الثوابت المطبوعة

عليك أن توافق على أن فكرة الثوابت القابلة للتعديل تبدو غريبة بعض الشيء. في إصدارات 32 بت من دلفي بورلاند قررت عدم تثبيط استخدامها ، ولكن دعمها لكود دلفي القديم.

يمكننا تمكين أو تعطيل الثوابت المكتوبة القابلة للتخصيص في صفحة المترجم في شاشة خيارات المشروع.

إذا قمت بتعطيل الثوابت المكتوبة القابلة للتخصيص لمشروع معيّن ، فعند محاولة ترجمة الشفرة السابقة ، ستمنحك دلفي خطأ "لا يمكن تعيين الجانب الأيسر" عند التحويل البرمجي. ومع ذلك ، يمكنك إنشاء ثابت مكتوب للتخصيص بإعلان:

{$ J +} CONST النقرات: عدد صحيح = 1 ؛ {$ J-}

لذلك ، يشبه رمز المثال الأول:

إجراء TForm1.Button1Click (المرسل: TObject) ؛ CONST {$ J +} النقرات: عدد صحيح = 1 ؛ / / ليس ثابت حقيقي {$ J-} ابدأ Form1.Caption: = IntToStr (النقرات) ؛ النقرات: = النقرات + 1 ؛ النهاية;

استنتاج

الأمر متروك لك لتحديد ما إذا كنت تريد أن تكون الثوابت المكتوبة قابلة للتخصيص أم لا. الشيء المهم هنا هو أنه إلى جانب كونه مثاليًا للعدادات ، فإن الثوابت المكتوبة مثالية لصنع مكونات مرئية أو غير مرئية بالتناوب ، أو يمكننا استخدامها للتبديل بين أي خصائص منطقية. يمكن أيضًا استخدام الثوابت المكتوبة داخل معالج أحداث TTim لتتبع عدد المرات التي تم تشغيلها فيها.


شاهد الفيديو: الفكر الأشعري بالمغرب خلال مرحلتي التأسيس والترسيم: المؤثرات المشرقية والخصوصيات المحلية (يوليو 2021).