عرض مربع رسالة مشروط نظام TopMost مع دلفي

click fraud protection

مع تطبيقات سطح المكتب (Windows) ، أ مربع حوار (مربع حوار) يستخدم لتنبيه المستخدم من التطبيق بأنه يلزم اتخاذ بعض الإجراءات ، أو أن بعض العمليات قد اكتملت ، أو بشكل عام ، لجذب انتباه المستخدمين.

في دلفي، هناك عدة طرق لعرض رسالة للمستخدم. يمكنك إما استخدام أي من إجراءات عرض الرسائل الجاهزة المقدمة في RTL ، مثل ShowMessage أو InputBox ؛ أو يمكنك إنشاء مربع الحوار الخاص بك (لإعادة الاستخدام): CreateMessageDialog.

من المشاكل الشائعة في جميع مربعات الحوار أعلاه أنها تتطلب أن يكون التطبيق نشطًا ليتم عرضه للمستخدم. يشير "نشط" إلى عندما يكون للتطبيق "تركيز الإدخال".

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

مربع رسالة أعلى مشروط النظام

على الرغم من أن هذا قد يبدو معقدًا ، إلا أنه في الواقع ليس كذلك.

نظرًا لأنه يمكن لدلفي الوصول بسهولة إلى معظم مكالمات واجهة برمجة تطبيقات Windows ، فإن تنفيذ وظيفة "واجهة برمجة تطبيقات Windows" "MessageBox" ستفي بالغرض.

محدد في وحدة "windows.pas" - الوحدة المضمنة افتراضيًا في بند استخدامات كل نموذج من أشكال دلفي ،

instagram viewer
MessageBox تقوم الوظيفة بإنشاء مربع رسالة وعرضه وتشغيله. يحتوي مربع الرسالة على رسالة وعنوان محددين من قبل التطبيق ، إلى جانب أي مجموعة من الرموز المحددة مسبقًا وأزرار الضغط.

إليك كيفية الإعلان عن MessageBox:

وظيفة MessageBox (

hWnd: HWND ؛
النص ،
lpCaption: PAnsiChar ؛
uType: Cardinal): عدد صحيح ؛

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

ال النص lpT و lpCaption تحديد التسمية التوضيحية ونص الرسالة المعروضة في مربع الرسالة.

الأخير هو uType المعلمة وهو الأكثر إثارة للاهتمام. تحدد هذه المعلمة محتويات مربع الحوار وسلوكه. يمكن أن تكون هذه المعلمة مجموعة من الأعلام المختلفة.

مثال: صندوق تحذير مشروط للنظام عندما يتغير تاريخ / وقت النظام

دعونا نلقي نظرة على مثال على إنشاء مربع رسالة مشروط أعلى نظام. ستفعل تعامل مع رسالة Windows التي يتم إرسالها إلى جميع التطبيقات قيد التشغيل عند تغييرات النظام / الوقت—على سبيل المثال ، استخدام التطبيق الصغير "خصائص التاريخ والوقت" في لوحة التحكم.

سيتم استدعاء وظيفة MessageBox على النحو التالي:

 شبابيك. MessageBox (

 مقبض،

 "هذه رسالة مشروطة بالنظام" # 13 # 10 "من تطبيق غير نشط" ،

 "رسالة من تطبيق غير نشط!" ،

 MB_SYSTEMMODAL أو MB_SETFOREGROUND أو MB_TOPMOST أو MB_ICONHAND) ،

أهم قطعة هي المعلمة الأخيرة. يضمن "MB_SYSTEMMODAL أو MB_SETFOREGROUND أو MB_TOPMOST" أن يكون مربع الرسالة مشروطًا للنظام ، والأهم أنه يصبح نافذة المقدمة.

  • MB_SYSTEMMODAL تضمن الإشارة أنه يجب على المستخدم الاستجابة لمربع الرسالة قبل متابعة العمل في النافذة المحددة بواسطة معلمة hWnd.
  • MB_TOPMOST تحدد العلامة أنه يجب وضع مربع الرسالة فوق كل النوافذ غير العلوية ويجب أن يظل فوقها ، حتى عند إلغاء تنشيط النافذة.
  • MB_SETFOREGROUND يضمن العلم أن يصبح مربع الرسالة نافذة المقدمة.

فيما يلي رمز المثال الكامل (TForm المسمى "Form1" المحدد في الوحدة "unit1"):

وحدة وحدة 1؛

واجهه المستخدم


الاستخدامات

 Windows ، الرسائل ، SysUtils ، المتغيرات ، الفئات ،

 الرسومات ، عناصر التحكم ، النماذج ، مربعات الحوار ، ExtCtrls ؛


اكتب

 TForm1 = صف دراسي(TForm)

نشر

إجراء WMTimeChange (var Msg: TMessage) ؛ رسالة WM_TIMECHANGE ،

عامة

{الإعلانات العامة}

النهاية;

فار

 Form1: TForm1 ؛


التنفيذ{$ R * .dfm}


إجراء TForm1.WMTimeChange (var Msg: TMessage) ؛

ابدأ

 شبابيك. MessageBox (

 مقبض،

 "هذه رسالة مشروطة بالنظام" # 13 # 10 "من تطبيق غير نشط" ،

 "رسالة من تطبيق غير نشط!" ،

 MB_SYSTEMMODAL أو MB_SETFOREGROUND أو MB_TOPMOST أو MB_ICONHAND) ،

النهاية;

النهاية.

حاول تشغيل هذا التطبيق البسيط. تأكد من تصغير التطبيق أو على الأقل أن بعض التطبيقات الأخرى نشطة. تشغيل التطبيق الصغير "خصائص التاريخ والوقت" لوحة التحكم وتغيير وقت النظام. بمجرد الضغط على زر "موافق" (على بريمج) سيتم عرض مربع الرسالة الأعلى مشروط النظام من التطبيق غير النشط.

instagram story viewer