Home » Delphi » Component, Delphi, Reader Request, Sample Apps, Tips & Tricks » Contoh Penggunaan WM_NCHITTEST Di Delphi

Contoh Penggunaan WM_NCHITTEST Di Delphi

Print Friendly



Latar Belakang Latar Belakang
Di kondisi tertentu kita ingin membuat jendela login dengan borderStyle := bsNone agar tidak bisa diresize, diminimize, atau diclose. Persoalan pun timbul, bagaimana bila user ingin men-drag (menggeser) form tersebut? .

Pertama, buat sebuah prosedur baru di bagian private pada deklarasi form:


procedure OnWMHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST;

sehingga kode menjadi seperti ini:


type
 TForm3 = class(TForm)
 private
 { Private declarations }
 procedure OnWMHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST;
 public
 { Public declarations }
 end;

Prosedur di atas akan menjadi event handler apabila ada message WM_NCHITTEST yang datang dari Windows. Yang perlu kita lakukan adalah memeriksa variabel msg.Result. Bila nilai msg.Result = htClient (kejadian dengan mouse berada dalam form), kita ubah nilainya menjadi htCaption (mouse berada di caption form), walaupun form tidak memiliki caption karena border style adalah bsNone.

Sebelumnya, jangan lupa beri inherited agar default message processing dapat berjalan.

Selanjutnya tekan [Ctrl+Shift+C] untuk membuat implenetasi prosedur di atas:

procedure TForm3.OnWMHitTest(var msg: TWMNCHitTest);
begin
 inherited;
 if msg.Result = HTCLIENT then
 msg.Result := HTCAPTION;
end;

Nah, coba jalankan aplikasi kita. Cek apakah Anda dapat melakukan drag form meskipun bukan lewat Captionnya.

Download Download
Download samplenya di bawah ini.

Contoh Penggunaan Message WM_NCHITTEST untuk melakukan drag form tanpa lewat caption. (0.0 B)

 


 

Comments

comments

Powered by Facebook Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>