Membuat ICONTRAY di Delphi

Ketika kita menjalankan sebuah aplikasi, maka biasanya akan tampil pada taskbar aplikasi yang dijalankan tersebut. Namun apabila kita ingin icon aplikasinya tampil bukan pada taskbar, tapi pada bagian sebelah kanan taskbar (icontray) maka kita harus membuat coding khusus agar ketika nanti program tersebut dijalankan, icon aplikasinya tampil pada bagian icontray.

Langkah-langkahnya adalah sebagai berikut.

1.       Pada form utama project, tambahkan sebuah komponen PopupMenu. PopupMenu ini untuk menuliskan menu-menu yang ada pada project tersebut yang apabila kita klik kanan pada iconnya, maka menu-menu tersebut akan tampil. Misalnya kita punya 2 menu yaitu exit dan show.

2.       Pada event onCreate form tersebut ketikan code sbb. 

with NotifyIconData do 
begin   
hIcon := Icon.Handle;   
StrPCopy(szTip, Application.Title);   
Wnd := Handle;   
uCallbackMessage := WM_ICONTRAY;   
uID := 1;   
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;   
cbSize := sizeof(TNotifyIconData); 
end; 
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);

3.       Pada bagian uses tambahkan ShellApi dan tambahkan code berikut setelah deklarasi uses :     

const     
WM_ICONTRAY = WM_USER + 1;   // User-defined message 

4.       Buat prosedur icontray pada bagian private, sbb.

private    { Private declarations }
procedure Icontray(var Msg: TMessage); message WM_ICONTRAY;   

procedure Tform1.Icontray(var Msg: TMessage);var  CursorPos : TPoint;
begin 
if Msg.lParam = WM_RBUTTONDOWN then 
begin    GetCursorPos(CursorPos);   
SetForegroundWindow(Handle);        // suggested by Berend Radstaat   
PopupMenu1.Popup(CursorPos.x, CursorPos.y);   
PostMessage(Handle, WM_NULL, 0, 0); // suggested by Berend Radstaat 
end 
else   
inherited;
end; 

5.       Tambahkan variable NotifyIconData: TNotifyIconData; pada bagian deklarasi variable.

6.       Pada event OnCLose form, ketikkan code berikut.           

Action := caNone;     
Hide;     
Shell_NotifyIcon(NIM_ADD, @NotifyIconData); 

7.       Pada menu exit event OnCLick ketikkan code berikut.  

Shell_NotifyIcon(NIM_DELETE, @NotifyIconData); 
Application.ProcessMessages; 
Application.Terminate; 

8.       Pada menu show event OnCLick ketikkan code berikut, agar ketika diklik menu show akan menampilkan form utama tersebut.            

Show;     
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);           

8 thoughts on “Membuat ICONTRAY di Delphi

  1. asss….Boleh tanya Mbak….Cara buat laporan Pada Delphi 6.0, agar pada tampilan QuickReport yaitu Format Nominalnya:

    Contoh :

    yang zuhri Inginkan Format :
    1.000.000

    ternayata pada laporan yang saya buat :
    1000000

    Saya mhon penjelasannya yaa…Mbak LINA

    zuhri di Pekanbaru Riau,24 Th Smester 6
    salam Kenal Mbak LIna

  2. yang jadi masalah adalah, saat kita klik kanan ikon di tray muncul menu popup, & menu popup tsb tdk hilang2, kecuali kita klik salah satu pilihanya. bgaimana mengatasi itu bu ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s