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:
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;
Bisher habe ich TNID global deklariert.
var TNID: TNotifyIconData;
Das hat gut geklappt. Also habe ich das duch folgendes ersetzt:
var Icon1, Icon2: TNotifyIconData;
uns TNID stattdessen als Prozedur-Parameter eingefügt.
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]