Skip to main content

Menyembunyikan form di system tray dengan delphi XE

Bagaimana caranya menyembunyikan form delphi ke dalam system tray?

Waktu itu saya pernah membuat sebuah aplikasi semacam task scheduler yang dapat memproses dan mengirimkan semua email notifikasi ke setiap user yang bersangkutan.

Semacam aplikasi sms server lah namun kalau sms server yang dikirim adalah sms melalui server, nah yang saya buat ini yang dikirim adalah email.

Apa sih tujuan dibuatnya aplikasi semacam itu?

Kalau misalnya kamu bekerja di sebuah perusahaan yang tidak memiliki tenaga ahli dibidang IT, maka terkadang untuk melakukan tugas-tugas yang simple dan sepele seperti mengirimkan email notifikasi seperti ini saja bisa jadi akan dibutuhkan yang namanya tenaga kerja administrasi tambahan.

Sudah pasti perusahaan tidak akan suka dengan hal tersebut karena menambah tenaga kerja, sama saja dengan menambah biaya pengeluaran perusahaan. Benar ngga?

Padahal sebenarnya hal tersebut bisa dilakukan dengan sistem aplikasi yang telah dibuat sedemikian rupa sesuai dengan kebutuhan perusahaan yang bersangkutan, atau bisa saja menggunakan aplikasi semacam visualcron yang dapat anda download untuk menjalankan task yang anda inginkan, agar dapat mengurangi biaya pengeluaran perusahaan.


Nantikan saja artikel mengenai cara mengirimkan email dengan delphi di artikel berikutnya.

 

Menyembunyikan form delphi ke dalam system tray

Buka IDE Delphi XE kamu, kemudian buatlah sebuah project baru. Hanya 1 form yang akan kita butuhkan disini. Tempatkan 2 buah button ke dalamnya dan atur properties kedua button tersebut menjadi seperti berikut ini.
Button 1

Caption: Hide to system tray, Name: BtnHide

Button 2

Caption: Esc - Close, Name: BtnClose

 

Tempat kan sebuah TTrayIcon, TImageList dan TTimer ke dalam form dan atur properties dari masing-masing control tersebut menjadi seperti berikut ini.
TTrayIcon

Name: TrayIcon1

TImageList

Name: ImageList1

TTimer

Name: Timer1

Interval: 2000

Enabled: False

Tambahkan sebuah icon ke dalam ImageList. Disini saya menggunakan icon bergambar amplop biru dan bernama mail.ico, silahkan jika anda ingin menggantinya dengan icon kesukaan anda.

Kira-kira nanti bentuk form1 nya akan menjadi seperti gambar berikut ini :

layout-delphi-system-tray.png

 

Full source code :

[code language="delphi"]

unit Unit5;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ImgList, Vcl.ExtCtrls;

type
TMAIN_FRM = class(TForm)
TrayIcon1: TTrayIcon;
ImageList1: TImageList;
BtnHide: TButton;
BtnClose: TButton;
Timer1: TTimer;
procedure BtnHideClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure TrayIcon1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
MAIN_FRM: TMAIN_FRM;
FRMStatus: Integer;

implementation

{$R *.dfm}

procedure TMAIN_FRM.BtnCloseClick(Sender: TObject);
begin
application.Terminate;
end;

procedure TMAIN_FRM.BtnHideClick(Sender: TObject);
begin
Self.WindowState:=wsMinimized;
end;

procedure TMAIN_FRM.FormCreate(Sender: TObject);
var
MyIcon : TIcon;

begin
//Application.OnMinimize:=OnMinimize;
TrayIcon1.Icons := TImageList.Create(Self);
MyIcon := TIcon.Create;
MyIcon.LoadFromFile('mail.ico');
TrayIcon1.Icon.Assign(MyIcon);
TrayIcon1.Icons.AddIcon(MyIcon);
FRMStatus:=1;
end;

procedure TMAIN_FRM.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then application.Terminate;
end;

procedure TMAIN_FRM.FormResize(Sender: TObject);
begin
if MAIN_FRM.windowstate = wsMinimized then
begin
MAIN_FRM.Hide();
TrayIcon1.Visible := True;
TrayIcon1.BalloonHint := 'Your apps - Now hidding in system tray !';
TrayIcon1.BalloonFlags := bfInfo;
TrayIcon1.ShowBalloonHint;
FRMStatus:=2;
end;
end;

procedure TMAIN_FRM.FormShow(Sender: TObject);
begin
if FRMStatus = 1 then
Begin
Timer1.Enabled:=True;
End;
end;

procedure TMAIN_FRM.Timer1Timer(Sender: TObject);
begin
MAIN_FRM.WindowState:=wsMinimized;
Timer1.Enabled:=False;
end;

procedure TMAIN_FRM.TrayIcon1Click(Sender: TObject);
begin
TrayIcon1.Visible := False;
Show();
WindowState := wsNormal;
Application.BringToFront();
FRMStatus:=1;
end;

end.

[/code]

 

Selamat mencoba dan semoga bermanfaat buat kalian :)

Tonton video tutorialnya disini dan anda tentu saja dapat menemukan link download full source codenya dari sana.

https://www.youtube.com/watch?v=13Uy1RaN9vI

Comments

Popular posts from this blog

Tutorial Pentaho 7 (Mulai Dari Proses Install Sampai Dengan Koneksi Database)

Halo sob, pernah mendengar pentaho ? Ya tahun lalu saya sempat mencoba-coba dan ingin mencari tahu tentang kegunaan dan kelebihan dari pentaho. Akhir november tahun 2016 kemarin, Pentaho 7 versi community edition resmi diluncurkan. Beberapa bulan sebelumnya saya sempat mencoba versi 4 atau 5 namun hanya sebentar dan kalau tidak salah pun boleh di bilang gagal. Lalu saya coba lagi versi release terbaru dari pentaho 7 community edition tersebut dan alhamdulillah berhasil. Namun saat ini saya sudah tidak bisa lagi memberikan tutorialnya melalui tulisan saya karena jujur saja saya pun sudah lupa saat ini. Harus menonton video-video tutorial saya dulu mengenai Pentaho yang sudah pernah saya upload ke youtube waktu itu. Itulah salah satu gunanya memiliki video tutorial sendiri yang bisa kita tonton sewaktu-waktu apabila kita lupa di lain waktu. Bener ngga sob. Meskipun banyak juga video-video lain yang bisa kita temukan di youtube. Terima kasih juga untuk google yang sudah mengakuisisi youtu...

Cara Menghilangkan Status Read Message Pada Aplikasi WhatsApp (Tips WhatsApp Terbaru)

Hai sobat yadishare, apa kabar ? Apakah kalian termasuk pengguna aplikasi whatsapp ?   Menurut saya sih sudah pasti ya. Karena kalau tidak rasanya kalian tidak akan membaca artikel saya ini bukan... Mayoritas para pengguna smartphone android biasanya menggunakan aplikasi whatsapp untuk chatting dan bertukar informasi melalui group. Istilah kerennya bersosmed atau bersosial media. Tapi jangan kebablasan ya. Gunakanlah seperlunya. Jangan hanya karena takut dibilang ngga gaul terus kita tidak bisa memfilternya. Saat ini whatsapp boleh dibilang sudah dapat menggeser atau menggantikan peran blackberry messenger yang pernah sangat booming dan pernah tidak tergantikan saat itu. Well, memang tidak akan pernah ada yang abadi di dunia ini. Semua pasti tergantikan. Cepat atau lambat akan selalu ada teknologi baru yang dapat menggantikan teknologi lama.   https://www.youtube.com/watch?v=Nn2BKaiDzVg&t=61s   https://www.youtube.com/watch?v=r6Voq8Jk2Ag   Nah tipsnya kali ini ad...

Youtube Tips 2017 | Cara Mengganti Dark Theme

Pada kesempatan ini saya ingin membahas seputar layout youtube terbaru tahun 2017. Yaitu mengenai cara mengganti tema atau theme baru yang bisa kita temui pada saat kita membuka situs youtube. Mungkin fitur baru ini sengaja disediakan oleh google agar kita tidak jenuh atau bosan dengan tampilan youtube yang itu-itu saja. Fitur ini bisa anda aktifkan dan non aktifkan sesuai dengan selera anda kapan pun anda mau. Kalau menurut saya sih cukup keren. Makanya ketika saya tahu kalau mereka menyediakan fitur tersebut, saya langsung tertarik untuk mencobanya. Dan kesan yang saya dapatkan cukup memuaskan. Karena pada dasarnya saya sebagai developer atau programmer memang sudah terbiasa dengan layout bertema gelap seperti itu. Untuk melihat coding-coding php, vb, dan lain-lain lebih mudah untuk membedakan syntax yang satu dengan syntax yang lainnya. Nah jika anda tertarik untuk mencoba dark theme baru tersebut, kalian bisa langsung menggantinya melalui menu setting. Disana akan ada opsi untuk me...