![]() |
Mehrere Tray-Icons (ohne Komponente)
Hallo,
ich möchte für mein Programm mehrere Icons im Tray anzeigen. Mit einem hat es bis jetzt prolemlos funktioniert. Ich möchte auch keine Komponente dafür verwenden, da ich mit mehreren Probleme hatte. Der Code ist (abgewandelt) von DSDT.info:
Delphi-Quellcode:
Bisher habe ich TNID global deklariert.
procedure TaskBarAddIcon(TNID: TNotifyIconData; IIcon: TIcon; IInfo: String);
begin with TNID do begin cbSize := SizeOf(TNotifyIconData); Wnd := MainForm.Handle; uID := 1; uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; uCallbackMessage := WM_TASKBAREVENT; hIcon := IIcon.Handle; StrCopy(szTip, PChar(IInfo)); end; Shell_NotifyIcon(NIM_ADD, @TNID); end; procedure TaskBarRemoveIcon(TNID: TNotifyIconData); begin Shell_NotifyIcon(NIM_DELETE, @TNID); end;
Delphi-Quellcode:
Das hat gut geklappt. Also habe ich das duch folgendes ersetzt:
var TNID: TNotifyIconData;
Delphi-Quellcode:
uns TNID stattdessen als Prozedur-Parameter eingefügt.
var Icon1, Icon2: TNotifyIconData;
:arrow: Wenn ich nun die Add-Funktion 2 mal ausführe (1. mit Icon1, 2. mit Icon2), wird nur das Icon1 angezeigt. Woran könnte das liegen? Danke, ManuMF [Edit]Sorry, sollte eigentlich in Sonstiges zu Delphi[/edit] |
Re: Mehrere Tray-Icons (ohne Komponente)
Nutze eine unterschiedliche ID in der NOTIFYICONDATA Struktur....
|
Re: Mehrere Tray-Icons (ohne Komponente)
Hallo,
Das habe ich probiert, aber ohne Erfolg :cry: . Ich habe mir jedoch eine eigene Komponente geschrieben, die diesen Code verwendet, und mit dieser funktioniert es wunderbar! :gruebel: Ich habe sie bisher nur nicht verwendet, da sie in einem anderen Projekt seltsamerweise immer eine Zugriffsverletzung erzeugte (habe ich auch hier geschildert). Also, damit hat es sich erledigt. Gruß, ManuMF |
Re: Mehrere Tray-Icons (ohne Komponente)
aus irgend einem Grund wird in den meisten Beispielen eine Globale für die Traystrukutur genutzt. Ich würde einfach empfehlen eine Private-Variable daraus zu machen, und bei Nutzung verschiedener ID's gibt es auch keine Probleme zwei strukuren im Tray zu registrieren. Eventuell hast du ja in deinem Projekt der Methode zum Registrieren 2 mal die gleiche Struktur übergeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz