إذا كنت تريد معرفة ما إذا كان الكائن من نوع خاص، فاكتب الكود التالي:
إذا كان TypeOf obj هو ListItem ثم ...
إذا كنت ترغب في الحصول على اسم نوع الكائن، استخدم:
MsgBox "العنصر عبارة عن" & TypeName(obj)
السيطرة على حلقات طويلةعندما يعلق البرنامج في حلقة طويلة، لا يمكنك النقر فوق أي أزرار أو مفاتيح أوامر. وهذا أمر يصعب على المستخدمين التحكم فيه. ربما لم يعد المستخدم يريد تنفيذ الحلقة والخروج بالنقر فوق الزر "إلغاء"؟ كيفية حل هذه المشكلة؟ الجواب هو: استخدم أمر DoEvents! أي، قم بتنفيذ أمر DoEvents في بداية الحلقة، مثل الكود التالي:
خافت ط طالما
لأني = 1 إلى 1000000
DoEvents
...
التالي ط
في الواقع، لا يلزم وضع أمر DoEvents في السطر 1، بل يمكن وضعه في أي مكان في الحلقة. من خلال القيام بذلك، سيكون لدى الأجزاء الأخرى من البرنامج، مثل زر الأمر الذي ينهي الحلقة، فرصة أخرى لقبول أحداث النقر.
جعل الحلقات الطويلة تعمل بشكل أسرعلقد وجدت أنه بشكل عام، من الأفضل استخدام وظيفة API GetInputState للتحقق من قيمة قائمة انتظار إدخال البرنامج. لا أعرف لماذا تجعل عبارة If التعليمات البرمجية تعمل بشكل أسرع، ولكنها في الواقع تعمل بشكل جيد.
ولذلك، يمكن أن يكون السطر التالي من التعليمات البرمجية
DoEvents
استبدل ب
إذا كان GetInputState() ثم DoEvents
جربها!
في الواقع، السبب وراء ذلك هو أن عبارة DoEvents تسمح لأي تطبيق بتنفيذ أحداث ذات صلة، وليس فقط البرنامج الخاص بك. بعد إضافة حكم GetInputState، يمكنك فقط قبول إجراءات الحدث من برنامجك الخاص!
جعل تحديد الحالة أسهلدعونا نلقي نظرة على المثال التالي: إنشاء سلسلة من المستخدم بالنقر فوق مجموعات مختلفة من العلامات:
lbl(0) = "مرحبًا"
lbl(1) = "أعلق: م"
lbl(2) = "سعيد"
lbl(3) = "حزين"
...
sub lbl_click (فهرسة كعدد صحيح)
string$ = string$+lbl(index).caption
بعد ذلك، يتعين عليك كتابة سلسلة من بيانات الحالة المحددة لتحليل هذه السلسلة...
حدد سلسلة الحالة $
حالة "مرحبًا أعلق: م سعيد"
افعل شيئًا
حالة "مرحبًا أعلق: م"
سيكون هذا خطأ..
حالة أخرى
افعل شيئًا آخر
حدد النهاية
كما ترون، سيكون هذا معقدًا للغاية، خاصة إذا كان هناك العديد من العلامات والفحوصات القانونية لعمليات الدمج المطلوبة.
لحل هذه المشكلة، قمت بإنشاء مصفوفة بنفس طول عدد العلامات:
arraylbl(n) كعدد صحيح
القيمة الأولية للمصفوفة هي 1، ثم قيمة كل عنصر تساوي القيمة السابقة مضروبة في 2 (القيمة*2)، هكذا: 1 2 4 8 16 32 64... وبهذه الطريقة، مزيج من كل زوج من التسميات سيكون له قيمة فريدة أخرى"
لبل(0) + لبل(1) = 1 + 2 = 3
لبل(0) + لبل(1) + لبل(4) = 1 + 2 + 16 = 19
الآن، عند النقر على تسمية، تتم إضافة قيمة lblarray() المقابلة لها إلى المتغير. بهذه الطريقة، استنادًا إلى بضعة أرقام، يمكنك ببساطة كتابة بيان حالة محدد:
حدد الحالة IsLegal
الحالة 3
ملاحظة: السلسلة كانت صالحة
استدعاء السلع
الحالة 19
ملاحظة: السلسلة كانت صالحة
استدعاء السلع
caseelse
ملاحظة: غير صالحة
اتصل بـ nogood
حدد النهاية
هاها، في بعض الأحيان، يمكن أن يكون لرقمنة الأحرف تأثيرات جيدة بشكل غير متوقع!