Contoh dalam artikel ini menjelaskan bagaimana Delphi menyadari kemampuan formulir untuk merasakan arah mouse dan secara otomatis menyembunyikan dan menampilkan jendela. Bagikan dengan semua orang untuk referensi Anda. Metode implementasi spesifiknya adalah sebagai berikut:
const WM_MouseEnter = $B013; WM_MouseLeave = $B014;ketik TfrmMain = class(TForm) . Timer1: TTimer; prosedur Timer1Timer(Pengirim: TObject); Prosedur R *.dfm} TfrmMain.WMMouseEnter(var Msg: TMessage);begin if(Top<0) lalu mulai Top := 0; //Untuk memastikan bahwa formulir drop-down disajikan di depan SetWindowPos(Handle,HWND_TOPMOST,0,0,0 ,0, SWP_NOMOVE atau SWP_NOSIZE); //Dorong formulir ke depan SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE atau SWP_NOSIZE); //Kemudian batalkan formulir ke ujung depan; on timer Periksa secara teratur apakah mouse masih dalam lingkup form, //Hal ini dapat menghindari hilangnya prosedur event MOUSELEAVE karena pergerakan mouse yang cepat TfrmMain.Timer1Timer(Sender: TObject);var rc:TRECT; pt:TPOINT;begin GetWindowRect(self.Handle,rc); //Dapatkan luas persegi panjang dari bentuk GetCursorPos(pt); posisi if( bukan PtInRect(rc,pt)) lalu //Jika mouse tidak berada dalam lingkup formulir mulai if(Top = 0) lalu //Jika formulir saat ini terpasang di tepi atas layar, pindahkan formulir tersembunyi ke atas mulai Atas := 0-Tinggi+2; disembunyikan SetWindowPos(Handle ,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE atau SWP_NOSIZE); //Dorong formulir ke frontend;end;
Saya harap artikel ini bermanfaat untuk pemrograman Delphi semua orang.