Pages

Subscribe:

About

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

Senin, 03 Maret 2014

Tray Icon dengan Tombol Minimize [ Delphi 7 ]

 


Sesuai Permintaan saya post tutorial Tray Icon dengan Tombol Minimize [ Delphi 7 ], kronologinya pada saat tombol minimize windows di klik pada program biasanya hanya minimize pada taskbar saja, sekarang kita ubah dimana pada saat tombol minimize di klik akan masuk ke system trayiscon. langsung ke tutorial :



 dibawah ini source code beserta tampilan script lengkapnya

script lengkap :

Pada Unit Exe :                                              

program Tray_Icon;
//==========================================================//
//copyright : http://olvandra.blogspot.com                  //
//            http://meanddelphi.blogspot.com               //
//==========================================================//

uses
  Forms,
  Controls, Dialogs, ShellApi, Windows,      // <<<<<<<<< uses yg diperlukan
  UTrayIcon in 'UTrayIcon.pas' {TrayIcon};

{$R *.res}
var
  NotifyIconData : TNotifyIconData;
begin
  Application.Initialize;
  Application.ShowMainForm := true;  // fungsi untuk pada saat run Munculkan Form atau tidak nilai True berarti Muncul dan False berarti Hide
  Application.Title := 'Open Aplikasi Tray Icon';
  Application.CreateForm(TTrayIcon, TrayIcon);
  NotifyIconData.cbSize := SizeOf( NotifyIconData );
  NotifyIconData.Wnd    := Trayicon.Handle;
  NotifyIconData.uCallbackMessage := WM_ShellIcon;
  NotifyIconData.hIcon  := Application.Icon.Handle;
  NotifyIconData.szTip  := 'Open Aplikasi Tray Icon';
  NotifyIconData.uFlags := NIF_TIP + NIF_MESSAGE + NIF_ICON;
  try
    Shell_NotifyIcon( NIM_ADD, @NotifyIconData );
    ShowWindow(Application.Handle, SW_HIDE);
    Application.Run;
  finally
    Shell_NotifyIcon( NIM_DELETE, @NotifyIconData );
  end;
end.
=====================end Code===================

Pada Form Unit:                                             

unit UTrayIcon;
//==========================================================//
//copyright : http://olvandra.blogspot.com                  //
//            http://meanddelphi.blogspot.com               //
//==========================================================//

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, ExtCtrls,Shellapi, ComCtrls, ImgList;

const
  WM_ShellIcon = WM_USER + 1;
 
type
  TTrayIcon = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    Restore1: TMenuItem;
    Hide1: TMenuItem;
    N2: TMenuItem;
    Exit1: TMenuItem;
    N3: TMenuItem;
    httpolvandrablogspotcom1: TMenuItem;
    Label1: TLabel;
    Image1: TImage;
    StatusBar1: TStatusBar;
    ImageList1: TImageList;
    procedure FormActivate(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure Restore1Click(Sender: TObject);
    procedure Hide1Click(Sender: TObject);
    procedure httpolvandrablogspotcom1Click(Sender: TObject);
  private
    { Private declarations }
    procedure O_nsShellIcon( var Msg : TMessage ); message WM_ShellIcon;
    procedure O_nsMinimize( var Msg : TWMSysCommand ); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  TrayIcon: TTrayIcon;

implementation

{$R *.dfm}

//script Button minimize = SC_MINIMIZE : //script tombol Close = SC_CLOSE
//jika Button Minimize di tekan
procedure TTrayIcon.O_nsMinimize(var Msg: TWMSysCommand);
begin
  if( Msg.CmdType = SC_MINIMIZE )  then  // ScMINIMIZE bisa di ganti dengan SC_CLOSE
    Hide
  else
    inherited;
end;

//script create Tray icon dan Popupmenu
procedure TTrayIcon.O_nsShellIcon(var Msg: TMessage);
var
  O_ns : TPoint;
begin
  case Msg.LParam of
    WM_LBUTTONDBLCLK : begin
                         Show;
                         SetForegroundWindow( Handle );
                       end;
    WM_RBUTTONUP     : begin
                         SetForegroundWindow( Handle );
                         GetCursorPos( O_ns );
                         PopupMenu1.Popup( O_ns.x, O_ns.y );
                         PostMessage( Handle, WM_USER, 0, 0 );
                       end;
  end;
end;

//script untuk hidden Form  di TASKBAR saat run(Sw_showmodal atau Sw_Hide)
procedure TTrayIcon.FormActivate(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE); // Sw-Hide bisa diganti dengan Sw_Showmodal ;
end;

//script untuk menghentikan program
procedure TTrayIcon.Exit1Click(Sender: TObject);
begin
  Application.Terminate;
end;

//script untuk memunculkan Form pada Popupmenu
procedure TTrayIcon.Restore1Click(Sender: TObject);
begin
  Show;
  SetForegroundWindow( Handle );
end;

//script untuk sembuntikan Form pada popupmenu
procedure TTrayIcon.Hide1Click(Sender: TObject);
begin
  Hide;
end;

//script untuk memanggil link (tambahkan shellapi pada uses paling atas)
procedure TTrayIcon.httpolvandrablogspotcom1Click(Sender: TObject);
begin
ShellExecute(Application.handle, 'open', 'http://olvandra.blogspot.com', nil, nil,
SW_ShowNormal);
end;

end.

Download Source code Tray Icon Dengan Minimize:

Mediafire : Download

4shared : Download

Download Tutorial cara penggunaan

4shared : Download

15 komentar:

apay mengatakan...

mas kalo SC save, save as dan save default kaya gmn ya?

Andra mengatakan...

Maaf mas... Kurang jelas maksud pertanyaan nya. bisa tolong jelaskan kronologinya.

apay mengatakan...

jadi gini mas,
kalo save as, itu kan fungsi buat save data yang hendak kita simpan ke dalam notpad,,, baik itu berupa teks maupun chekbox,,,

kalo load itu untuk untuk load data yang kita simpan,,,

sedangkan untuk save default (save) itu pas waktu kita buka file exe dari dhelpi save itu bisa ke load sendiri,,,
seperti itu mksd saya mas... tapi saya ada kenda di di bagian chekbox sama pas waktu buaka file dari exenya, save default(save) itu tidak bisa ke load

apay mengatakan...

untuk contoh codingnya seperti ini mas
http://www.tusfiles.net/pl5272mpmduf

Andra mengatakan...

Link anda berikan
File nya ada virus tidak bisa didownload...

coba gunakan 4shared atau mediafire

Andra mengatakan...

Load data dari directory link ke exe gt maksudnya... jadi pas waktu exe dijalankan sistem me-load setting program exe tesebut apakah begitu maksud nya...
kalau memang itu yg di maksud gunakan INI FILE.

settingan terjadi saat di aplikasi dijlankan misalkan berupa skin(tema) form , font dan lain-lain, diganti saat run exe dan ingin di set pada saat di buka kembali dan pada saat membuka ulang settingan tersbut akan auto sendiri.

Anonim mengatakan...

mas saya baru belajar Delphi , artikelnya blum dapat saya pahami.. mohon jelaskan step" gan pertama buka ini , kedua buka itu , trus masukan kode ini , dan mohon memakai gambar mas di tunggu artikelnya mas
dari jufrikablog

Andra mengatakan...

@jufrikablog

ini tutorialnya maaf bila kurang jelas. dalam format word sudah jelaskan secara rinci silahkan dilihat :

http://www.4shared.com/office/bZ4ja3VOce/Tutorial_Tray_icon_Button_Mini.html

Anonim mengatakan...

Terimakasih @andra :D

Unknown mengatakan...

fungsi hide dan show apa ya?

Andra mengatakan...

@irawati :

Hide : Untuk Menyembunyikan form

Show : Untuk memunculkan Form

Di tutorial dalam dokument Word sudah saya jelaskan step by step pembuatan. silahkan dilihat

Anonim mengatakan...

maaf mas ane newbie, kalo cara membuat shape blink download upload seperti di injek ssh itu gimna ya?

Andra mengatakan...

TShape Kedip kedip?

tinggal mainin di TTimer aja.

contoh:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Shape1.visible:=not (Shape1.visible);
end;
end.

NOTE: Shape bisa diganti dengan Label atau lain-lain sesuai keinginan anda

XZx mengatakan...
Komentar ini telah dihapus oleh pengarang.
XZx mengatakan...

untuk memunculkan pesan ketika diminimize gmna mas? misalkan tampilkan pesan "saya disini" , jadi pengguna program bisa tau klu programnya barusan masuk ke try icon :D . termimakasih

Posting Komentar

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

Visitor