Veröffentlicht 2. Juni 200322 j Neues Problem: Ich hab mein Programm aus der Taskleiste in den Tray verbannt, und zwar so:procedure TfrmMyProgram.FormShow(Sender: TObject); begin ShowWindow(Application.Handle, SW_HIDE); with TrayIcon do begin cbSize := SizeOf(TrayIcon); Wnd := Handle; uID := 0; uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; uCallbackMessage := IC_CLICK; hIcon := Application.Icon.Handle; szTip := 'Mein Programm'; end; Shell_NotifyIcon(NIM_ADD, @TrayIcon); end; Nun will ich bei einem bestimmten Ereignis das Icon ändern, sodass man sieht, dass etwas passiert ist. Ich hab schon das hier versucht:var MyIcon: TIcon; begin MyIcon.LoadFromFile('MyIcon.ico'); <-- IconDatei im Project-Verzeichnis TrayIcon := MyIcon.Handle; end;Das Icon ändert sich nicht, und wenn ich das Fenster öffne, kann ich es nicht mehr minimieren! Was mache ich falsch?
2. Juni 200322 j Du musst das neue Handle an TrayIcon.hIcon zuweisen. Außerdem musst du noch Shell_NotifyIcon mit NIM_MODIFY aufrufen.
2. Juni 200322 j Ich Depp! Das hab ich auch gemacht, aber vergessen, es hinzuschreiben, so:var MyIcon: TIcon; begin MyIcon.LoadFromFile('MyIcon.ico'); <-- IconDatei im Project-Verzeichnis TrayIcon.hIcon := MyIcon.Handle; Shell_NotifyIcon(NIM_MODIFY, @TrayIcon); end;Es klappt so aber nicht. TrayIcon ist global.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.