IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Delphi (https://www.ircforumlari.net/delphi/)
-   -   Delphide yapılan programı system tray olarak görüntülemek (https://www.ircforumlari.net/delphi/445122-delphide-yapilan-programi-system-tray-olarak-goruntulemek.html)

aSi 20 Ocak 2012 11:15

Delphide yapılan programı system tray olarak görüntülemek
 
Soru ; Delphide bir program yazıp çalıştırıp kullanıldıktan sonra kapat butonuna bastığında system tray e nasıl gönderebilirim. İstediğim flashget programı gibi olması. programdan tam çıkış için system tray deki simgeye tıklanıp çıkılması gerekir. bunu nasıl yapabilirim?

Cevap ;
Kod:

  1. Unit SysTray;

  2. Interface

  3. Uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ShellApi,Menus,

  4.   StdCtrls;

  5. Type

  6.   TForm1 = Class(TForm)

  7.     menu        : TPopupMenu;

  8.     menuHakkinda : TMenuItem;

  9.     menuAc      : TMenuItem;

  10.     menuCikis    : TMenuItem;

  11.     AcilisNotu  : TMemo;

  12.     ButonTamam  : TButton;

  13.     ButonCik    : TButton;

  14.     Procedure FormCreate(Sender: TObject);

  15.     Procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

  16.     Procedure menuHakkindaClick(Sender: TObject);

  17.     Procedure menuCikisClick(Sender: TObject);

  18.     Procedure menuAcClick(Sender: TObject);

  19.     Procedure FormDestroy(Sender: TObject);

  20.     Procedure ButonTamamClick(Sender: TObject);

  21.     Procedure ButonCikClick(Sender: TObject);

  22.   Private

  23.     TrayIcon : TNotifyIconData;

  24.     Procedure FormuGizle(Sender: TObject);

  25.     Procedure FormuGoster;

  26.     Procedure MenuyuGoster;

  27.   Public

  28.   End;

  29. Var

  30.   Form1 : TForm1;

  31. Implementation

  32. {$R *.dfm}

  33. Procedure TForm1.FormuGizle(Sender: TObject);

  34. Begin

  35.   Shell_NotifyIcon(NIM_ADD,@TrayIcon); // System Tray'e yeni bir Icon ekle

  36.   Form1.Visible:=False;                // Formu gizle

  37. End;

  38. Procedure TForm1.MenuyuGoster;

  39. Var

  40.   FareninKonumu : TPoint;

  41. Begin

  42.   GetCursorPos(FareninKonumu);                // Mouse'un pozisyonunu öğren

  43.   menu.Popup(FareninKonumu.X,FareninKonumu.Y); // PopUp menüyü o pozisyona aç

  44.   PostMessage(Self.Handle,WM_NULL,0,0);        // Systeme Herhangibir Mesaj Gönderme

  45. End;

  46. Procedure TForm1.FormCreate(Sender: TObject);

  47. Begin

  48.   // TrayIcon'ın parametreleri aşağıda ayarlanıyor.

  49.   With TrayIcon Do

  50.     Begin

  51.       cbsize          := SizeOf(TrayIcon);

  52.       wnd              := Self.Handle;

  53.       hicon            := Application.Icon.Handle;

  54.       uID              := 0;

  55.       sztip            := 'Mouse icon üzerindeyken görünecek mesaj.';

  56.       uflags          := NIF_ICON Or NIF_TIP Or NIF_MESSAGE;

  57.       uCallBackMessage := WM_MOUSEMOVE;

  58.     End;

  59.   Application.OnMinimize:=FormuGizle; // Form minimize edilince çalışacak procedure

  60. End;

  61. Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

  62. Begin

  63.   // $201 Sol Tuş Basıldı

  64.   // $202 Sol Tuş Bırakıldı

  65.   // $203 Sol Tuş Çift Tıklandı

  66.   // $204 Sağ Tuş Basıldı

  67.   // $205 Sağ Tuş Bırakıldı

  68.   // $206 Sağ Tuş Çift Tıklandı

  69.   If (x=$203) Then FormuGoster

  70.               Else If (x=$205) Then MenuyuGoster;

  71. End;

  72. Procedure TForm1.FormuGoster;

  73. Begin

  74.   Form1.Visible:=True;                    // Formu göster

  75.   Application.BringToFront;              // Formu öne al

  76.   Application.Restore;                    // Uygulamayı tekrar başlat

  77.   Shell_NotifyIcon(NIM_DELETE,@TrayIcon); // System Tray'deki iconu sil

  78. End;

  79. Procedure TForm1.menuHakkindaClick(Sender: TObject);

  80. Begin

  81.   ShowMessage('System Tary Denemesi'+#13+

  82.               'Copyright (C) 2002 Hakan HAMURCU'+#13+

  83.               'hakan@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]cu.com');

  84. End;

  85. Procedure TForm1.menuCikisClick(Sender: TObject);

  86. Begin

  87.   Application.Terminate; // Uygulamayı bitir

  88. End;

  89. Procedure TForm1.FormDestroy(Sender: TObject); // Form hafızadan atıldığı zaman

  90. Begin

  91.   Shell_NotifyIcon(NIM_DELETE,@TrayIcon); // System Tray'deki iconu sil

  92. End;

  93. Procedure TForm1.menuAcClick(Sender: TObject);

  94. Begin

  95.   FormuGoster;

  96. End;

  97. Procedure TForm1.ButonTamamClick(Sender: TObject);

  98. Begin

  99.   FormuGizle(Sender);

  100. End;

  101. Procedure TForm1.ButonCikClick(Sender: TObject);

  102. Begin

  103.   Application.Terminate; // Uygulamayı bitir

  104. End;

  105. End.




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 21:55.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk