يصف المثال الموجود في هذه المقالة كيف تدرك دلفي قدرة النموذج على استشعار الماوس وإخفاء النافذة وعرضها تلقائيًا. شاركها مع الجميع لتكون مرجعا لك. طريقة التنفيذ المحددة هي كما يلي:
const WM_MouseEnter = $B013; WM_MouseLeave = $B014;type TfrmMain = class(TForm) الإجراء R *.dfm TfrmMain.WMMouseEnter(var Msg: TMessage);begin if(Top<0) ثم ابدأ Top := 0 // للتأكد من عرض النموذج المنسدل في المقدمة SetWindowPos(Handle,HWND_TOPMOST,0,0,0; ,0، SWP_NOMOVE أو SWP_NOSIZE)؛ // ادفع النموذج إلى الأمام SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE أو SWP_NOSIZE); // ثم قم بإلغاء النموذج إلى الواجهة الأمامية; مؤقت تشغيل تحقق بانتظام مما إذا كان الماوس لا يزال ضمن نطاق النموذج، // وهذا يمكن أن يتجنب فقدان إجراء حدث MOUSELEAVE بسبب الحركة السريعة للماوس TfrmMain.Timer1Timer(Sender: TObject);var rc:TRECT;begin GetWindowRect(self.Handle,rc); // احصل على المساحة المستطيلة للنموذج GetCursorPos(pt); الموضع if( not PtInRect(rc,pt)) ثم // إذا لم يكن الماوس ضمن نطاق النموذج فابدأ if(Top = 0) ثم // إذا كان النموذج مرفقًا حاليًا بالحافة العلوية للشاشة، فحرك النموذج المخفي لأعلى begin Top := 0-Height+2; end; مخفي SetWindowPos(Handle ,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE أو SWP_NOSIZE);
آمل أن تكون هذه المقالة مفيدة لبرمجة دلفي للجميع.