Einzelnen Beitrag anzeigen

Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#1

TrayIcon wird nicht zerstört

  Alt 3. Jul 2009, 07:28
hi,

ich benutze in meinen Programmen ungern externe Komponenten, außer es gibt einen guten Grund dafür. nun, ein tray icon ist kein grund für mich eine externe komponente zu nutzen. Also hab ich mir mit hilfe des freundes google und der MSDN das hier zusammengefrickelt:#
Delphi-Quellcode:
  TTrayIcon = class (TObject)
  public
    class procedure OnMessage (var Msg: TMessage);
  end;
Delphi-Quellcode:
  Fillchar(NotifyIconData,Sizeof(NotifyIconData),0);
  NotifyIconData.cbSize := Sizeof(NotifyIconData);
  NotifyIconData.Wnd := AllocatehWnd(TTrayIcon.OnMessage);
  NotifyIconData.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
  NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
  NotifyIconData.hIcon := Application.Icon.Handle;
  StrPLCopy(NotifyIconData.szTip, PChar ('FLAP ' + Version), SizeOf(NotifyIconData.szTip) - 1);
  Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
  Application.OnMinimize := Form1.OnMinimize;
Funktioniert wunderbar und so wie es soll.

Im OnClose event habe ich das hier noch drin:
TrayIcon.Free; Nur wird das TrayIcon weiterhin auch nach schließen weiterhin angezeigt. Was hab ich da übersehen? THX

MfG
  Mit Zitat antworten Zitat