14
Feb
09

Menjadikan form “Always On Top” di Delphi

Udah lama ga ngoprek Delphi, jadi agak2 lupa & lama nyambungin otak ke lingkungan IDE Delphi. Banyak juga fitur-fitur standar Delphi yg lupa juga. Apalagi setelah pindah ke Delphi 2007, cukup drastis lah perubahannya (sebelumnya pake Delphi 7).

Sesuai dengan judulnya, kmaren ada kerjaan lama yg mau direvisi dikit. Jadi pengennya form utamanya di set ke “always on top”. Pusing juga cari2 di properties formnya… akhirnya setelah googling sana-sini, ketemu juga caranya. Jadi intinya, kita memanfaatkan fungsi SetWindowPos() yg ada di unit Windows. Sintaks lengkapnya adalah sebagai berikut:

BOOL SetWindowPos(     
    HWND hWnd,
    HWND hWndInsertAfter,
    int X,
    int Y,
    int cx,
    int cy,
    UINT uFlags
);

Keterangan:

  • hWnd: handle dari form
  • hWndInsertAfter: yg akan menentukan form kita itu akan “always on top” atau nggak
  • X, Y: koordinat form
  • cx, cy: ukuran form
  • uFlags: flag yg berhubungan dengan ukuran dan penempatan posisi form.

Sorry ya, lg males translate… jadi untuk detilnya silahkan liat saja di help-nya Delphi… :p

Ya untuk lebih singkatnya, cara pakai fungsi tersebut adalah dengan cara meletakkannya di event OnShow() milik form yg bersangkutan.

SetWindowPos(Self.Handle,
HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);

Hasilnya bisa dicoba sendiri…😉


5 Responses to “Menjadikan form “Always On Top” di Delphi”


  1. 1 Julian
    Februari 2, 2011 pukul 5:51 am

    thx… it works

  2. 2 han
    Agustus 14, 2012 pukul 9:34 pm

    Walah mas, dilengkapi to, ane malah jd bingung nih😦

  3. 4 Arief
    Desember 14, 2014 pukul 11:46 am

    secara umum form nya mau “always on top” tapi ketika saya membuka aplikasi media player classic yg diset juga “always on top”, form yg saya buat jadi malah di bawahnya. hal yg sama juga terjadi ketika saya membuka task manager yg “always on top” juga. gmana caranya membuat form yg benar2 “always on top” ?

    • Desember 15, 2014 pukul 9:04 am

      saya sendiri belum pernah coba, tapi secara logis flag HWND_TOPMOST digunakan untuk memposisikan suatu form agar berada di posisi paling atas dari semua form yg ada saat itu
      jadi logikanya flag tsb tidak bisa dijadikan top most dari form yg blm ada


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s


arioss

Arsip

Blog Stats

  • 68,494 hits

RSS Fokus ITB

  • Sebuah galat telah terjadi; umpan tersebut kemungkinan sedang anjlok. Coba lagi nanti.

%d blogger menyukai ini: