Tray Icon? sederhana aja, Tray Icon adalah icon yang (secara default) ada di pojok kanan bawah sebelah kiri jam system.nah disini saya akan coba bahas trik bagaimana membuat program pake delphi yang dapat menampilkan tray ikon dan menghilangkannya kembali, serta klo iconnya diklik-kanan, ntar muncul popup menu.
rada susah sih jelasinnya, coz rada panjang. tapi mudah2an langkah2 berikut ini bermanfaat:
- pada form yang baru dibuat, tekan F12 untuk beralih ke jendela coding.. pada bagian uses, tambahkan unit ShellAPI
- pada bagian type, tambahkan private variabel yang bertipe TNotifyIconData, misal nama variabelnya TrayIcon
- tekan F12 lagi untuk beralih ke tampilan form anda, double klik form anda, nanti muncul procedure TForm1.FormCreate(Sender: TObject); dan tambahkan sintaks berikut ini untuk inisialisasi program
- tambahkan object button pada form anda, captionnya beri nama Create tray icon. button ini buat meng-create tray icon. double klik button ini, ntar bakal kebentuk
procedure TForm1.Button1Click(Sender: TObject);
lalu tambahkan sintaks berikut ini pada body procedure
- tambahkan lagi object button pada form anda, captionnya beri nama Hide tray icon. button ini buat meng-hide tray icon. double klik button ini, ntar bakal kebentuk
procedure TForm1.Button2Click(Sender: TObject);
lalu tambahkan sintaks berikut ini pada body procedure
- sekarang kita pilih object inspector, objectnya pilih form kita sekarang (defaultnya, pilih form1). pilih tag events, pilih events OnDestroy, double klik valuenya yang masih kosong, ntar bakal kebentuk
procedure TForm1.FormDestroy(Sender: TObject);
- pada body procedure ini tambahkan sintaks yang sama seperti langkah nomor 5 (untuk menghilangkankan tray icon). hal ini bertujuan agar ketika aplikasi di-exit, tray icon ikut hilang dan memory yang digunakan di-release (dibebaskan)
- tambahkan object PopupMenu yang ada pada component Standard ke form anda skarang. double klik PopupMenu-nya, ntar muncul PopupMenu design. tambahin aja menu Show sama menu Exit. menu Show disini digunakan untuk menampilkan (me-maximize) kembali aplikasi yang sudah di-minimize, sedangkan Exit yang buat exit :p
- Pada Popupmenu Design, double klik PopupMenu yang Show, ntar muncul
procedure TForm1.Show1Click(Sender: TObject);
dan tambahin sintaks berikut ini
- Pada Popupmenu Design, double klik PopupMenu yang Exit, ntar muncul
procedure TForm1.Exit1Click(Sender: TObject);
dan tambahin sintaks berikut ini
- wuih.. sabar.. masih belom beres. dikit lagi.
tambahkan satu private procedure berikut ini untuk menampilkan popup menu. - skr kembali ke object inspector lagi. objectnya pilih form kita skarang (defaultnya pilih Form1), pilih tag events, pilih events OnMouseMove, double klik valuenya yang masih kosong, ntar bakal kebentuk
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
lalu tambahkan sintaks berikut ini pada body procedure tersebut
private { Private declarations } TrayIcon: TNotifyIconData;
TrayIcon.cbSize := SizeOf(TrayIcon); TrayIcon.Wnd := Self.Handle; TrayIcon.uID := 0; TrayIcon.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE; TrayIcon.uCallbackMessage := WM_MOUSEMOVE; TrayIcon.hIcon := Application.Icon.Handle;
Shell_NotifyIcon(NIM_ADD, @TrayIcon);
Shell_NotifyIcon(NIM_DELETE, @TrayIcon);
Application.Restore;
Application.Terminate
procedure TForm1.ShowPopupMenu; var CurPos: TPoint; begin GetCursorPos(CurPos); SetForegroundWindow(Self.Handle); PopupMenu1.Popup(CurPos.x, CurPos.y); PostMessage(Self.Handle, WM_NULL, 0, 0); end;
jangan lupa menambahkan deklarasi procedure pada private declaration
private { Private declarations } TrayIcon: TNotifyIconData; procedure ShowPopupMenu; // ini deklarasi procedure pada private declaration
if X = 517 then ShowPopupMenu;
yups, thats all.. selamat mencoba ^_^!
nambah: klo mau contoh source codenya, silahkan email saya
mas, minta contoh yang shell api donk, saya pake delphi 6, pas saya jalanin, shell api-nya error, not found..
thanks ya…
LikeLike
@ferri
hm.. berarti di delphi 6 ga ada shell api. klo anda mau, saya bisa kirim shell api-nya via email sama petunjuk letak penyimpanan file-nya.
btw, mau contoh yang bagaimana nih maksudnya?
LikeLike
Mas .. minta tolong cara nya yang lebih sederhana dunk . maklum newbie . maksudnya pakai program delphi yah . ada cara yang lebih sederhana lage nggak ? atau kalo ada tutorialnya tolong kirimin dunk mas ..
Thanks yah …
LikeLike
bisa.. kirim via email saja ya..
silakan email saya: bayu_rimba_p[at]yahoo.co.id
LikeLike
ms q lg buat TA neh pk delphy 7, tanya donk…
source kode untuk nampilin laporan ..
ex:
dari tanggal 1 january ampe 30 january
tampilkan kode barang dan keuangan nya
yang pasti pk perintah sql tp q krag paham…
trus gmana sich cara nampilin button di aplikasi delphy dalam bentuk button2 sejenis php.. (pk nya icon pa) bisa pk speedbutton g..bls ya mas,,thank u
LikeLike
klo bikin button yang ada gambarnya, pakai bitbutton. gambarnya bisa milih yang udah ada dengan memilih typenya, bsa juga custom.
untuk laporan, lebih baek pake rave report, komponennya ditambahkan dulu ya. tapi klo dibahas semua disini kayaknya ga efisien deh, klo mau via email aja.. atau cari buku delphi yang bahas rave report. gampang kok
LikeLike
klo cara nampilin hint icon nya gmn?????
rep y gw g btuh bgt bwt study gw
LikeLike
udah gw coba pake delphi 6, n hasilnya sukses banget.
Makasih bro buat tutornya 😀
LikeLike
Mas, mantep deh jadi Konsultan Delphi… ana dukung tuh… kebetulan gi banyak pertanyaan soal Delphi neh…
LikeLike
setahun yang lalu dapet tantangan ne dari mas2 yang ngajarin aku delphi. buat nampilin icon di tray tapi di taksbar g ada. udah lupa juga sebelumnya. browsing2, nemu blog ini. aku gabungin deh 2 artikel si mas. dan alhamdulillah bisa. tapi masih belum ngerti maksud tu code gimana. hehe.
LikeLike
syukurlah klo bisa.. klo soal ngerti atau gak ngerti, dengan modal bisa bahasa inggris dan sedikit rajin browsing pasti anda bisa 🙂
LikeLike
Gan,,,,,
gua udah coba pake Delphi 7 ne.
tapi koq ga fungsi yach.
tolong kirimin contoh aplikasi nya donk ke zcool3@yahoo.com
thankzs,,,,,,
LikeLike
masa c ga fungsi? tuh agan up1x di atas comment katanya bisa..
gimana kalo agan yg share code nya? nanti ane bahas.. jadi bisa belajar sama2 😀
LikeLike
Bos minta contoh source codenya donk!,tglng kirimke sireng671yahoo.com
LikeLike
Bos minta contoh source codenya donk!,tglng kirimke
sire ng671yahoo.com,please
LikeLike
Bos minta contoh source codenya donk!,tglng kirimke
sireng67@yahoo.com
LikeLike
eh buset.. komeng udah kayak spam wkwkwk
pelajari aja code di atas.. rangkailah menjadi sebuah source code 🙂
LikeLike