Delphi de System Tray de bulunan ve çalışan program yapmak

trigger
Forum Ustası
Windows ekranımızın sağ alt köşesinde saatin yanında(ki buranın gerçek adı System Tray' dir) bildiğiniz üzere bazı programlar icon yerleştirirler ve burada çalışmaya devam ederler.

Bu iconlara sağ tıklarsanız bir menü açılır ve buradan komut verirsiniz.

MSN Messenger, Skype vb. programları pencere köşesinden kapatsanız bile kapanmaz ve arka planda çalışmaya devam ederler.

Bu özellikleri kendi programınıza da katmak isterseniz Delphi' de bunu StTrayIcon componenti ile yapıyoruz.

Bu component tpshellshock component sınıfının bir üyesidir.



Konuya eklenti olarak bu sınıfın tüm componentlerini veriyorum. İndirip kurarak kullanabilirsiniz. (339 kb)

Bu component sayesinde programınıza ait bir simgeyi System Tray' e yerleştirebilirsiniz. Bu simgeye istediğiniz bir image dosyasını(*.ico) yükleyebilirsiniz.

Fare ile icon üzerine geldiğinizde bir hint vererek bunun kullanıcı tarafından görünmesini sağlayabilirsiniz.




Tabi iş sadece görsel bir icon koymakla sınırlı kalmıyor.

Bir pop-up menü oluşturarak sttrayicon componentinize bağlayabilirsiniz. Böylelikle system tray daki iconunuza sağ tıkladığınızda karşınıza sizin düzenlediğiniz menü çıkar ve zaten çalışmakta olan programınıza istediğinizi yaptırabilirsiniz.

Ben örnek olarak verdiğim programda basitçe "Göster" ve "Çıkış" diye 2 komut yazdım.



Kod:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, SsBase, StTrIcon, Menus, ExtCtrls, SsShlDlg, StdCtrls,
  StShlCtl, ComCtrls, StFormat, StFileOp;

type
  TForm1 = class(TForm)
    StTrayIcon1: TStTrayIcon;
    PopupMenu1: TPopupMenu;
    Dene11: TMenuItem;
    Dene31: TMenuItem;
    procedure FormShow(******: TObject);
    procedure Dene31Click(******: TObject);
    procedure Dene11Click(******: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(******: TObject); // System Tray daki iconumuza ait özellikleri belirliyoruz.
begin
StTrayIcon1.Hint:='Programınız burada çalışıyor';
StTrayIcon1.Active:=true;
end;

procedure TForm1.Dene31Click(******: TObject); // Programdan çıkış butonu
begin
halt;
end;

procedure TForm1.Dene11Click(******: TObject); // Program ekranını göster butonu
begin
form1.Show;
end;

end.
Alıntı değildir.

Harun.
 
Champion78
Çırak
Arkadaşım sağolasın, seni Allah gönderdi inan :) kaç gündür uğraşıyorum nasıl yapılır diye, az önce google a sordum buraya gönderdi. baktım sen de konuyu daha dün açmışsın. tesadüfe bak :) tekrar çok teşekkür ederim, güzel paylaşım..
 
amac
Cool Çırak
Bu yöntemi sözlük programım için kullanmıştım.Kendim uğraştım baya en başta,sonra çözdüm olayı.Bu da faydalı oldu bana,diğer projelerimde kullanacağım..
 
Kayıtlı Değil
Misafir Üye
delphide scsda sistemlerini nasil kura bilirim??? lan-dan gelen siqnallari nasil emal

delphide scsda sistemlerini nasil kura bilirim??? lan-dan gelen siqnallari nasil emal ede bilerim ?????
mumkunse bu e maile yazardiniz @hotmail.ccom
 
- Yönetici düzenlemesi: :
Üst