Einzelnen Beitrag anzeigen

sanastro013

Registriert seit: 28. Jul 2004
4 Beiträge
 
#1

TNA Icon - Wie richtig schließen?

  Alt 28. Dez 2004, 14:48
Hi

Ich versuche mich eben an SysTray Icons und eigentlich auch mit Erfolg.

Allerdings habe ich da noch ein Problem.
Ich habe mir die OneInstance Komponente heruntergeladen, die ich hier in der DP gefunden habe.
Wenn ich nun per "Senden an" eine Datei an mein geöffnetes Programm schicke, funktioniert das auch super und das Programm bleibt nur einmal geöffnet, allerdings wird dann ein weiteres Systray Icon hinzugefügt und verschwindet erst, wenn ich mit meiner Maus darüberfahre.

Ich wollte mir die CoolTray Komponenten laden, die ich auch hier im Forum gefunden habe, kann diese aber mit D7 nicht installieren
(Ungültiges Package Handle)

Nun meine Frage:
Kann man die Icons irgendwie "sauber" beenden, so dass sie gleich verschwinden und nicht erst, wenn man mit der Maus darüberfährt?

Die Suche habe ich benutzt, wurde aber nicht fündig da immer nur auf Cooltray verwiesen wird.
(Außerdem scheint sie heute defekt zu sein. Sie gibt mir immer eine Fehlermeldung aus wenn ich versuche zu suchen )

Hier der Code den ich benutze um das Icon anzuzeigen:

Delphi-Quellcode:
const
  cWM_MYTRAYICONCALLBACK = WM_USER + 1000;
...

...
procedure TForm4.FormCreate(Sender: TObject);
var
  IconData: TNOTIFYICONDATA;
begin
  with IconData do
    begin
      cbSize := SizeOf (TNOTIFYICONDATA);
      Wnd := Handle;
      uID := 1;
      uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
      hIcon := LoadIcon (0, IDI_INFORMATION);
      szTip := 'Test';
      uCallBackMessage := cWM_MYTRAYICONCALLBACK;
    end;
   If not Shell_NotifyIcon (NIM_ADD, @IconData) then
    { Fehler! };
end;
Zum "Beenden" des Icons:

Delphi-Quellcode:
  if not Shell_NotifyIcon (NIM_DELETE, @fIconData) then
    { Fehler! };
Ich würde mich über Antworten freuen

Mfg

Sanastro

__________
Daniel
  Mit Zitat antworten Zitat