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
__________