حياة

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

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

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

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

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

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

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

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

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

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

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

وظيفة MESSAGEBOX (
hWnd: HWND؛
lpText،
lpCaption: PAnsiChar؛
uType: الكاردينال): عدد صحيح.

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

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

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

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

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

سيتم استدعاء وظيفة MessageBox كـ:

Windows.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؛

جهة تعامل


الاستخدامات

ويندوز ، الرسائل ، SysUtils ، المتغيرات ، فئات ،

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

نوع

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

نشر

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

عامة

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

  النهاية;

فار

Form1: TForm1 ؛

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

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

ابدأ

Windows.MessageBox (

مقبض،

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

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

MB_SYSTEMMODAL أو MB_SETFOREGROUND أو MB_TOPMOST أو MB_ICONHAND) ؛

النهاية;

النهاية.

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


شاهد الفيديو: أكسس 59 نموذج مربع حوار مشروط (يونيو 2021).