Sytem Tray'de ki program iconu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Sytem Tray'de ki program iconu

Mesaj gönderen hdayi »

Merhaba arkadaşlar.
Küçük bi program yaptım, system tray'e indiriliyor. Burada programın iconu görünüyor. Ancal programı kapattığım zaman bu icon system trayden kaybolmuyor. Programı üst üste bii kaç kez çalıştırır ve kapatırsam o zaman bi kaç tane icon oluşuyor.
Mouse'u system tray'in üzerinde getirince kayboluyor iconlar. Başka programların böyle bir derdi yok acaba yapmak gereken bişey mi var?

Teşekkürler
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

kullandığınız bileşen veya yöntem ne? genelde otomatik yapar ama windows handle ise uçurmak gerekebilir.
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Kod: Tümünü seç

procedure TForm1.minimize;
begin
    stray.cbSize:=sizeof(notifyicondata);
    stray.Wnd:=Form1.Handle;
    stray.uID:=0;
    stray.szTip:='YTL | kayserim.net'#0;
    stray.uCallbackMessage:=$200;
    stray.uFlags:=7;
    stray.hIcon:=Application.Icon.Handle;
    Shell_NotifyIcon(0,@stray);
    Form1.Visible:=False;
end;
bunu kullanıyorum. Bi yerden bulmuştum bu kodu ama şimdi nerden olduğunu hatyırlayamadım.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

kaynak

Kod: Tümünü seç

procedure TMainForm.FormCreate(Sender: TObject);
var
  NotifyIconData: TNotifyIconData;
begin
  Fillchar(NotifyIconData,Sizeof(NotifyIconData),0);
  NotifyIconData.cbSize := Sizeof(NotifyIconData);
  NotifyIconData.Wnd    := Handle;
  NotifyIconData.uFlags := NIF_MESSAGE
    or NIF_ICON
    or NIF_TIP;
  NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
  NotifyIconData.hIcon := Application.Icon.Handle;
  NotifyIconData.szTip := 'Hinweistext für das TrayIcon';
  Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;

{TrayIcon mit dem Hauptformular zerstören}
procedure TMainForm.FormDestroy(Sender: TObject);
var
  NotifyIconData: TNotifyIconData;
begin
  FillChar(NotifyIconData,Sizeof(NotifyIconData),0);
  NotifyIconData.cbSize := Sizeof(NotifyIconData);
  NotifyIconData.Wnd    := Self.Handle;
  NotifyIconData.uFlags := NIF_MESSAGE
    or NIF_ICON
    or NIF_TIP;
  NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
  NotifyIconData.hIcon := Application.Icon.Handle;
  NotifyIconData.szTip := 'Punkt';
  Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end;
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Mege,
FormCreate'deki

Kod: Tümünü seç

NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
satırında hata verdi. WM_TASKABAREVENT diye bişey yokmuş. Bunu aratınca aşağıdaki sayfayı buldum.
http://www.delphi-fundgrube.de/faq01.htm
orada söylediklerini yaptım (almanca bilmiyorum ama kodlara bakıp tahmin ettim. :lol: ) Yine de aynı hatayı verdi.
Ben de gönderdiğin kodun sadece FromDestroy kısmını kullandım. Icon'u benim yazdığım kodla oluşturdum. Senin yazdığın kodla da yok ettim. Çiçek gibi oldu. Kapatır kapatmaz hemen icon SystemTray'den kayboluyor artık.

Teşekkürler....
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Şimdi baktım da dikkatimi çekti, aynı satır FormDestroy'da da var ama orda hata vermiyor.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Misafir

Mesaj gönderen Misafir »

merhaba.
ikisinde de hata veriyor-ki öyle bi windows mesajı yok..o satırı kaldırdığınızda çalışıyor sorun yok.
mege'den o satırın aslını da bi öğrensek :oops:
kolay gelsin.
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Mesaj gönderen Delhici »

form close olayına aşağıdaki satırı yaz...

Shell_NotifyIcon(2,@stray);


hepsi bu kadar...
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

selam dün lşehir dışındaydım, konuyu takip edemedim o yüzden.

TNotifyIconData sınıfıylla ilgili bulduğum bi sayfadan aktardığım bi kod parçası. detaylar hakkında bilgim yok :)
.-.-.-.-.-.-.-. ^_^
Cevapla