try icon

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

try icon

Mesaj gönderen mehmet_turecan_cakmak »

öncelikle günaydın

yaptığım programın başlat çubuğundaki saatin yanında iconunun gözükmesi istiyorum yani try icon bu konuda yardımcı olabilecek bir yiğit varmı...
yardımlarınızı bekliyorum...

iyi çalışmalar
Kullanıcı avatarı
FXERKAN
Üye
Mesajlar: 178
Kayıt: 26 Tem 2003 11:06
Konum: Sivas - Konya
İletişim:

Mesaj gönderen FXERKAN »

galiba bu kod işini görür bu basit bir hali sen daha sonra geliştirebilirsin

// Formunuza 1 Memo, 2 Buton, 1 PopUpMenu yerleştirin ve menu elemanı olarak 3 item ayarlayın

Unit SysTray;

Interface

Uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ShellApi,Menus,
StdCtrls;

Type
TForm1 = Class(TForm)
menu : TPopupMenu;
menuHakkinda : TMenuItem;
menuAc : TMenuItem;
menuCikis : TMenuItem;
AcilisNotu : TMemo;
ButonTamam : TButton;
ButonCik : TButton;
Procedure FormCreate(Sender: TObject);
Procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
Procedure menuHakkindaClick(Sender: TObject);
Procedure menuCikisClick(Sender: TObject);
Procedure menuAcClick(Sender: TObject);
Procedure FormDestroy(Sender: TObject);
Procedure ButonTamamClick(Sender: TObject);
Procedure ButonCikClick(Sender: TObject);
Private
TrayIcon : TNotifyIconData;
Procedure FormuGizle(Sender: TObject);
Procedure FormuGoster;
Procedure MenuyuGoster;
Public
End;

Var
Form1 : TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.FormuGizle(Sender: TObject);
Begin
Shell_NotifyIcon(NIM_ADD,@TrayIcon); // System Tray'e yeni bir Icon ekle
Form1.Visible:=False; // Formu gizle
End;

Procedure TForm1.MenuyuGoster;
Var
FareninKonumu : TPoint;
Begin
GetCursorPos(FareninKonumu); // Mouse'un pozisyonunu öğren
menu.Popup(FareninKonumu.X,FareninKonumu.Y); // PopUp menüyü o pozisyona aç
PostMessage(Self.Handle,WM_NULL,0,0); // Systeme Herhangibir Mesaj Gönderme
End;

Procedure TForm1.FormCreate(Sender: TObject);
Begin
// TrayIcon'ın parametreleri aşağıda ayarlanıyor.
With TrayIcon Do
Begin
cbsize := SizeOf(TrayIcon);
wnd := Self.Handle;
hicon := Application.Icon.Handle;
uID := 0;
sztip := 'Mouse icon üzerindeyken görünecek mesaj.';
uflags := NIF_ICON Or NIF_TIP Or NIF_MESSAGE;
uCallBackMessage := WM_MOUSEMOVE;
End;
Application.OnMinimize:=FormuGizle; // Form minimize edilince çalışacak procedure
End;

Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
Begin
// $201 Sol Tuş Basıldı
// $202 Sol Tuş Bırakıldı
// $203 Sol Tuş Çift Tıklandı
// $204 Sağ Tuş Basıldı
// $205 Sağ Tuş Bırakıldı
// $206 Sağ Tuş Çift Tıklandı
If (x=$203) Then FormuGoster
Else If (x=$205) Then MenuyuGoster;
End;

Procedure TForm1.FormuGoster;
Begin
Form1.Visible:=True; // Formu göster
Application.BringToFront; // Formu öne al
Application.Restore; // Uygulamayı tekrar başlat
Shell_NotifyIcon(NIM_DELETE,@TrayIcon); // System Tray'deki iconu sil
End;

Procedure TForm1.menuHakkindaClick(Sender: TObject);
Begin
ShowMessage('System Tary Denemesi'+#13+
'FXERKAN© - Erkan ÇİFTÇİ' + #13 +
'fxerkan@mynet.com - fxerkan@hotmail.com');
End;

Procedure TForm1.menuCikisClick(Sender: TObject);
Begin
Application.Terminate; // Uygulamayı bitir
End;

Procedure TForm1.FormDestroy(Sender: TObject); // Form hafızadan atıldığı zaman
Begin
Shell_NotifyIcon(NIM_DELETE,@TrayIcon); // System Tray'deki iconu sil
End;

Procedure TForm1.menuAcClick(Sender: TObject);
Begin
FormuGoster;
End;

Procedure TForm1.ButonTamamClick(Sender: TObject);
Begin
FormuGizle(Sender);
End;

Procedure TForm1.ButonCikClick(Sender: TObject);
Begin
Application.Terminate; // Uygulamayı bitir
End;

End.
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7587
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

TurboPower ShellShock paketi içinde güzel bir tray icon bileşeni var. Detaylar sitede 3. parti bileşenler kısmında.

Kolay gelsin.
Cevapla