Pages

Subscribe:

About

Blog Ini membahas Tentang Delphi dari Tutorial, Source code, hingga Programming *Exe. Bersumber dari http://olvandra.blogspot.com

Rabu, 28 September 2011

Minimize Tray Icon di delphi

Sore all... Tutorial kali ini saya posting mengenai Minimize Tray Icon di delphi, kebanyakan orang  binggung bagaimana cara minimize nya seperti aplikasi Jetaudio, Windows media player, dan lain-lain. Tray icon biasanya ada pada sudut bawah taskbar windows berdekatan dengan jam di komputer. Pengen kan kalau bisa minimize program tapi bisa ke tray icon.. untuk menghemat tempat di taskbar windows. Langsung saja Ke Tutorialnya

Langkah Pertama Buka Aplikasi Delphi

  • New application
  • save all
  • simpan pada folder yg telah ditentukan


Langkah Kedua Tambahkan Komponen
  • Button
  • Popupmenu


Langkah Ketiga Masukan Listing Code Programnya

Pada Uses Paling Atas Tambahkan

ShellApi;

Seperti contoh dibawah ini






Kemudian tambahkan

Const
WM_CAllBack = WM_USER;





Seperti contoh dibawah ini (Letakkan di atas type)



Tambahkan

 procedure WM_CALLBACKPRO(var msg : TMessage); message wm_callBack;


Seperti contoh dibawah ini





Kemudian Tambahkan

var
  kecil : HICON;
  TrayIcon : TNotifyIconData;
Seperti dibawah ini







Kemudian Tambahkan

Uses comobj;




Kemudian Tambahkan

procedure TForm1.WM_CALLBACKPRO(var msg : TMessage);
var
p : TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN :
begin
Shell_NotifyIcon(NIM_DELETE,@TrayIcon);
Form1.Visible := True;
end;
WM_RBUTTONDOWN :
begin
GetCursorPos(p);
PopupMenu1.Popup(p.X,p.Y);
end;
end;
end;




Kemudian tambahkan lagi pada button click

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Visible := False;
Kecil := application.Icon.Handle;
Trayicon.cbSize := SizeOf(TNotifyIconData);
Trayicon.Wnd := handle;
Trayicon.szTip := 'Aplikasi Tray Icon // Double Click For Show';
Trayicon.uID := 1;
TrayIcon.hIcon := Kecil;
TrayIcon.uCallbackMessage := WM_CAllBack;
Trayicon.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,@trayicon);
end;







Kemudian tambahkan pada Close di popupmenu1
procedure TForm1.Close1Click(Sender: TObject);
begin
Halt;
end;






Kemudian tambahkan pada About di popupmenu1

procedure TForm1.Show1Click(Sender: TObject);
begin
ShowMessage('Aplikasi Tray Icon');
end;





Selesai deh... Silahkan Run dengan Ctrl F9 (untuk menditeksi Error) Lalu Tekan F9


Untuk listing code lengkapnya dibawah ini :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, acPNG, StdCtrls, XPMan, Menus, ShellApi;

Const
WM_CAllBack = WM_USER;
type
  TForm1 = class(TForm)
    XPManifest1: TXPManifest;
    Panel1: TPanel;
    Button1: TButton;
    Label1: TLabel;
    Image1: TImage;
    Label2: TLabel;
    Bevel1: TBevel;
    Label3: TLabel;
    Timer1: TTimer;
    PopupMenu1: TPopupMenu;
    Show1: TMenuItem;
    N6: TMenuItem;
    Close1: TMenuItem;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Close1Click(Sender: TObject);
    procedure Show1Click(Sender: TObject);
    procedure WM_CALLBACKPRO(var msg : TMessage); message wm_callBack;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  kecil : HICON;
  TrayIcon : TNotifyIconData;

implementation

Uses comobj;

procedure TForm1.WM_CALLBACKPRO(var msg : TMessage);
var

p : TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN :
begin
Shell_NotifyIcon(NIM_DELETE,@TrayIcon);
Form1.Visible := True;
end;
WM_RBUTTONDOWN :
begin
GetCursorPos(p);
PopupMenu1.Popup(p.X,p.Y);
end;
end;
end;

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin

Label3.Caption:=TimeToStr(now);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

Form1.Visible := False;
Kecil := application.Icon.Handle;
Trayicon.cbSize := SizeOf(TNotifyIconData);
Trayicon.Wnd := handle;
Trayicon.szTip := 'Aplikasi Tray Icon // Double Click For Show';
Trayicon.uID := 1;
TrayIcon.hIcon := Kecil;
TrayIcon.uCallbackMessage := WM_CAllBack;
Trayicon.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,@trayicon);
end;

procedure TForm1.Close1Click(Sender: TObject);
begin

Halt;
end;

procedure TForm1.Show1Click(Sender: TObject);
begin

ShowMessage('Aplikasi Tray Icon');
end;

end.



Untuk SourceCOde silahkan Download dibawah ini (semoga bermanfaat)

Free download Tutorial Tray ICon di delphi

14 komentar:

han mengatakan...

keren, thanks ya bro

Andra mengatakan...

sama"...

Miftah mengatakan...

Wahhh... Thanks gan.. ane nyari2 akhirnya ketemu juga.. :D
Nice post.. Ditunggu jurus2 jitunya nich.. :)

Andra mengatakan...

Sama" .. Oke Next Posting gan...

andrea asyiffa mengatakan...

bang,saya punya aplikasi kalender,,gimana caranya untuk buat supaya jadi icon tray,,tu kn programnya udah saya buat dan sudah jaid,,trus gimana nyisipkan source code nya ???? terima kasih ya bang..

Andra mengatakan...

To Andea asyiffa :

Copy Paste aja Code Program diatas... Sesuai keingin anda..mw pake Button atau auto minimize.

tukar ilmu mengatakan...

work nih ..
keren

Andra mengatakan...

100 % work...

Unknown mengatakan...

kalo tombol minimize yang jadi hide to traynya caranya gimana gan?

Andra mengatakan...

@Rehan Phreakingtool

sudah saya bahas di postingan baru baru ini, silahkan dilihat :

http://meanddelphi.blogspot.com/2014/03/tray-icon-dengan-tombol-minimize-delphi.html

Unknown mengatakan...

saya sudah jalankan, tapi masalahnya adalah. ketika saya klik kanan ikon di systray, muncul popupmenunya. bgtu saya klik di luar, popupmenu tsb kok tdk menghilang ?. Ada solusinya ?. tolong.....

Andra mengatakan...

@Iyas Pikal

cek skrip code program dengan benar....

Andra mengatakan...

@Lyas Pikal

Kunjungi halaman berikut untuk lebih jelasnya

http://meanddelphi.blogspot.com/2014/03/tray-icon-dengan-tombol-minimize-delphi.html

yadishare mengatakan...

Hi you can watch my tutorial video for hiding form delphi XE to system tray. Hope this can help and solve your problem guys.
Here is the link : https://youtu.be/13Uy1RaN9vI you can also find the source code there :)

Posting Komentar

Untuk Mengurangi SPAM .Gunakan Kata-kata yang sewajarnya, sopan dalam tutur kata berbahasa. Sekian Terima kasih.

Visitor