في بعض الأحيان، تكون هناك حاجة إلى المزيد من السمات للتعامل بشكل أفضل مع الفصل الدراسي. على سبيل المثال، لنفترض أن لديك أربع مجموعات مختلفة من العملاء: أنواع العملاء من الشركات، والأكبر، والأصغر، والجدد، أو فئة للبحث باستخدام ثلاث طرق بحث مختلفة: القرص المرن، ومحرك الأقراص الثابتة، والشبكة. لذا، أليس من الأفضل اختيار واحد من قائمة الخيارات بدلاً من تعيين الخاصية ذات الصلة بأرقام أو نصوص لا يمكنك فهمها؟
أعتقد أن الجواب هو نعم. لأن هذا النوع من المعالجة يسمى "التعداد".
افتح المشروع من القسم السابق ودعنا نضيف بعض التعليمات البرمجية.
أضف الكود التالي إلى فئة CDog:
يتم استخدام الكلمة الأساسية "Enum" لتحديد التعداد، وبعبارة أخرى، فهو قائمة من الخيارات الممكنة. يحتوي كل خيار على رقم مناظر، مما يعني أن BigAndShaggy يساوي 1، وShortCrewCut يساوي 2، وهكذا.
وتجدر الإشارة إلى أنه عند إضافة معلومات حول عناصر التعداد إلى قاعدة البيانات، فإن القيم المقابلة لها تكون مفيدة جدًا. وبما أن "BigAndShaggy" يمثل في الواقع القيمة 1، فيمكن إدراجها مباشرة في الحقل الرقمي لقاعدة البيانات. هذا يعني أنه يمكنك بسهولة استخدام السلاسل للحفاظ على قاعدة البيانات.
لذلك، دعونا ننشئ قائمة بأنواع معطف الكلاب ونحدد سمة أخرى لإضافة هذه الأنواع إلى فئة CDog.
قم بتعريف المتغيرات التالية في الفصل:
PRivateudtCoatAsCoatType
يتم استخدام هذا المتغير الخاص المحدد لحفظ سمة نوع المعطف التي سيتم إضافتها. لاحظ أن المتغير udtCoat ليس سلسلة ولا عددًا صحيحًا، ولكنه نوع التعداد المحدد لدينا.
عند فتح فئة CDog، حدد الأمر "AddProcedure" في قائمة "الأدوات" وسيظهر مربع الحوار المقابل؛
اكتب معطف في مربع تحرير الاسم؛
حدد زر خيار "الخاصية" وانقر فوق [موافق].
يقوم النظام تلقائيًا بإنشاء إطار التعليمات البرمجية التالي:
لكن هذا ليس الإطار الذي نحتاجه. في التعليمات البرمجية، يمكن لنوع المتغير "المتغير" تلقي ومعالجة أي نوع من البيانات. في فئة CDog التي حددناها، السمة الأخيرة هي العمر، والتي يمكنها قبول الأعداد الصحيحة فقط. ولكن الآن يجب أن تكون السمة قادرة على استقبال نوع البيانات في قائمة CoatType، لذلك يجب إجراء التعديلات التالية:
قم بتغيير كل "Variant" في الكود الذي تم إنشاؤه إلى "CoatType"؛
ثم قم بإضافة بعض التعليمات البرمجية التي تتعامل بالفعل مع الخصائص.
في إجراء Get الخاص بالملكية، أضف الكود التالي:
في إجراء Let الخاص بالملكية، أضف الكود التالي:
التبديل إلى Form1;
قم بتغيير رمز زر الأمر إلى:
الآن ابدأ بكتابة: MyDog.Coat=
يحدث السحر، عندما تضغط على المفتاح "="، تظهر قائمة بالخيارات الممكنة، والتي يمكننا اختيار واحد منها.
أكمل كتابة الكود: MyDog.Coat=ShortCrewCut
بعد ذلك، سوف نحصل على قيمة خاصية المعطف. إذا كنا الآن نعرض ببساطة قيم الخصائص في مربع حوار الرسالة، فسنقوم ببساطة بإرجاع قيمة التحديد. على سبيل المثال، إذا تم تحديد ShortCrewCut، فيجب أن تقوم الخاصية الخاصة به بإرجاع 2. إذا كنت لا تصدق ذلك، يمكنك تجربتها!
ولكن إليك طريقة أخرى، وهي استخدام عبارة If-Then لتحديد الغلاف:
أضف التعليمة البرمجية التالية بعد التعليمات البرمجية الموجودة لزر الأمر:
يحدد الكود هنا ببساطة قيمة خاصية Coat ويعرض مربع حوار الرسالة المقابلة. بالطبع، يمكن أيضًا استخدام عبارة "SelectCase" هنا.
وأخيرًا، نضيف عبارة أخيرة لتحرير ذاكرة الكمبيوتر:
أضف التعليمة البرمجية التالية بعد التعليمات البرمجية الموجودة لزر الأمر:
اضغط على F5 لتشغيل البرنامج ثم انقر فوق زر الأمر لاختباره.
ماذا كانت النتيجة؟ ->