Entwickler-Ecke
Windows API - Tray-Icon während der Laufzeit ändern
Travis - Mo 21.10.02 18:30
Titel: Tray-Icon während der Laufzeit ändern
Hallo Leute,
ich habe schon die komplette Auq.de Datenbank durchsucht, bin aber leider nicht fündig geworden. Wie kann ich das Tray-Icon meines Programms während der Laufzeit ändern?
Schon im voraus Danke,
Travis
Anonymous - Mo 21.10.02 18:46
Mit Shell_NotifyIcon(NIM_MODIFY, @IconData) müßte es funktionieren.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| public IconData : TNotifyIconData;
... procedure ... begin ... IconData.hIcon := Application.Icon.Handle; //neues Icon zuteilen ... Shell_NotifyIcon(NIM_MODIFY, @IconData); //und aktualisieren end; |
Travis - Mo 21.10.02 19:21
Aber wie mache ich das? Ich muss doch irgendwo den Pfad zu dem Icon angeben, oder wie funktioniert das?
Travis
Delete - Mo 21.10.02 19:34
Über die VCL kommst du in dem Fall wohl mit einer "TIcon"-Variablen gut weg, über die du externe Icons laden kannst (LoadFromFile). Ansonsten stünden dir noch "ExtractIconEx", oder "LoadIcon" (für Icons in den Programm-Ressourcen) bzw. "LoadImage" (auch für externe Icons) zur Verfügung.
Die zuletzt genannten API-Funktionen liefern dir ein Icon-Handle zurück, dass du problemlos an die "hIcon"-Membervariable weiterreichen kannst, wie popov demonstriert hat.
Bei der Variable vom Typ "TIcon" hast du dafür die Eigenschaft "Handle". Das grundlegende Prinzip ist immer das selbe.
Travis - Mo 21.10.02 19:42
Danke für die Antworten. Ich weiß zwar noch nicht genau, ob ich das hinbekomme, aber ich werde es mal versuchen. Ich bin nämlich erst seit kurzem mit Delphi am programmieren und mit der API hab ich eigentlich noch nie etwas gemacht.
Travis
Delete - Mo 21.10.02 19:57
Wie gesagt, wenn du sowieso ein VCL-Programm hast (mit Forms!), dann nimm z.B. eine "TIcon"-Variable:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| ico := TIcon.Create; try ico.LoadFromFile('icon.ico'); IconData.hIcon := ico.Handle; finally ico.Free; end; |
Ich hoffe, das haut so hin - das war nur aus´m Kopf. :?
Travis - Mo 21.10.02 20:21
MathiasSimmack hat folgendes geschrieben: |
Ich hoffe, das haut so hin - das war nur aus´m Kopf. :?
|
Jawoll, es hat funktioniert. Nochmals Danke für die Hilfe!
Travis
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!