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

Mengirim Email dengan Delphi XE Menggunakan Account Google

Kemarin kita sudah membahas mengenai bagaimana caranya mengirim email melalui aplikasi yang dibuat dengan menggunakan VB.NET . Nah sekarang bagaimana caranya mengirim email tapi melalui aplikasi Delphi XE? Untuk mengirim email melalui Delphi XE sebenarnya mudah sekali. Caranya juga hampir mirip dengan VB.NET kok. Component yang dibutuhkan antara lain adalah TIdSMTP, TIdMessage dan TIdSSLIOHandlerSocketOpenSSL. Tanpa component-component tersebut kamu tidak akan dapat mengirimkan email. Selain component yang saya sebutkan diatas, tentu kamu akan membutuhkan koneksi internet. Tanpa itu mustahil email dapat dikirim ke alamat tujuan. Sebenarnya kamu juga dapat menambahkan class dari masing-masing component diatas ke dalam uses tanpa harus menggunakan component. Hal lain yang sangat penting yang mesti kamu pahami adalah untuk mengirimkan sebuah email dibutuhkan yang namanya email sender (email si pengirim), email recipient (email si penerima), email cc (optional), email bcc (optional) dan SM

Penjumlahan Inputbox Secara Otomatis Di HTML, Php, Dan JQuery

Hai sobat yadishare apa kabar? Sudah hari sabtu lagi nih. Iseng-iseng ah pengen nulis mengenai html dan jquery. Ketika kita membangun sebuah aplikasi menggunakan php, seringkali kita harus membuat sebuah penjumlahan antar textbox secara otomatis agar memudahkan user. Misalnya kita memiliki 3 buah inputbox yang kita buat dengan menggunakan HTML yang terdiri dari sub total, ppn, dan grand total. Kemudian setiap kali kita menginputkan angka ke dalam textbox sub total dan textbox ppn tersebut, kita ingin textbox grand total jumlahnya terhitung secara otomatis agar dapat memudahkan user. Lalu bagaimana caranya? Nah untuk dapat melakukannya, kita pasti butuh cara yang mudah dan cepat bukan? Ada banyak cara yang dapat kita lakukan untuk mewujudkan hal tersebut. Salah satunya adalah dengan menggunakan bantuan JQuery. Pertama kalian bisa download file jquery.js disini . Masukkan ke dalam folder assets/js. Kalian juga dapat menambahkan script berikut ini tanpa harus mendownload f

Aplikasi Database CRUD (VB6 + Ms. Access + Crystal Report 8)

Assalamualaikum wr. wb. sobat yadishare, apa kabar ? Di artikel kali ini saya akan membagikan tutorial tentang bagaimana cara membuat aplikasi CRUD (create, read, update, dan delete) menggunakan aplikasi atau bahasa pemrograman visual basic 6.0 dan database yang akan saya gunakan adalah database microsoft access. Untuk pembuatan laporannya nanti saya akan menggunakan aplikasi crystal report versi 8. Oke topiknya kali ini adalah membuat aplikasi crud sederhana tentang data pegawai. Namun di dalam aplikasi ini nanti teman-teman akan mempunyai opsi yang cukup lengkap. Selain ada fitur crud dan filtering data, teman-teman bisa langsung mencetak laporannya ke dalam printer. Keren kan ??? Ok langsung saja kita mulai tutorialnya. Untuk membuat aplikasi crud ini, dibutuhkan sebuah database microsoft access. Nah untuk mempersingkat waktu, berhubung saya sudah membuatkan tutorialnya di artikel dan video saya sebelumnya, jadi saya tidak akan bahas lagi disini. Teman-teman bisa langsung b