دلفي-الكشف عما إذا كان تطبيقي يحتوي على مربع حوار مشروط مفتوح

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

سؤال

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

ما أود القيام به هو تأجيل النوافذ المنبثقة للتنبيه بينما يحتوي التطبيق على أي مربعات حوار مشروطة مفتوحة.

حاولت جيتلاستاكتيفيبوبوب (ميمينويندو.مقبض) ولكن يبدو أن العودة غير الصفر في كل وقت.

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

نصائح أخرى

مجرد اختبار

if not IsWindowEnabled(MyMainWindow.Handle) then

وهذا من شأنه أيضا أن تأخذ الرعاية من المواقف عندما الحوار غير دلفي يتصرف مشروط ، كما هو الحال في windows.MessageBox(Handle....أو أ الحوار المشترك يظهر (أي.توبنديالوج).

استخدم AnyPopup () وظيفة

حول getlastactivePopup ().قد يتم إرجاع القيمة هو نفس المعلمة HWND متى

  • النافذة التي حددتها HWND كانت نشطة مؤخرا.
  • النافذة التي حددتها HWND لا تملك أي نوافذ منبثقة.
  • النافذة يحددها HWND ليس نافذة المستوى الأعلى، أو أنها تملكها نافذة أخرى.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top