كيف يمكن لتطبيق VB6 غير النموذجي إجراء عملية التنظيف عند إيقاف تشغيل التطبيق؟

StackOverflow https://stackoverflow.com/questions/123688

سؤال

يستخدم تطبيق VB6 مجموعة أدوات Interop Forms Toolkit للعمل مع النماذج المكتوبة بلغة .NET.تنصح وثائق مجموعة الأدوات باستدعاء أسلوب موجود في مجموعة الأدوات لإرشاد مجموعة الأدوات عند إيقاف تشغيل تطبيق VB6.

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

هل كانت مفيدة؟

المحلول

في الوحدة النمطية (ربما هي نفس الوحدة التي تحتوي على Sub Main)، قم بإنشاء وحدة فرعية عامة (مثل AppCleanUp) والتي ستحتفظ بكود التنظيف الخاص بك.

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

في الوحدة النمطية (ربما هي نفس الوحدة التي تحتوي على Sub Main)، قم بتعريف متغير clsAppCleanup.

في Sub Main، قم بإنشاء مثيل لـ clsAppCleanup.

عندما يتم إيقاف تشغيل التطبيق، سيؤدي حدث الإنهاء في الفصل إلى تشغيل رمز التنظيف.

نصائح أخرى

لقد مر وقت طويل منذ أن كتبت في VB6 ولكن إذا كنت أتذكر بشكل صحيح، فيمكنك استخدام حدث Unload لاستدعاء رمز التنظيف الخاص بك (وهو مشابه لحدث الإغلاق في .net).يمكنك أيضًا التحقق من عدم وجود نماذج أخرى في تطبيق VB6 لا تزال قيد التشغيل

إنشاء وحدة نمطية تحتوي على متغير FormCount.ستتم مشاركة هذا المتغير بواسطة جميع النماذج في تطبيقك.قم بزيادة المتغير FormCount في أسلوب Form_Initialize لكل نموذج.إنقاص FormCount في أسلوب Form_Terminate لكل نموذج.عندما يعود FormCount إلى 0، يمكنك إخطار مجموعة أدوات النموذج الخاصة بك بأنه قد تم إلغاء تحميل النماذج.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top