StatusBarIcon weg, wenn Window verdeckt wurde?
Verfasst: 13.06.2007 16:46
Ist vielleicht nen Peanut, aber evtl. stolpert der ein oder andere auch drüber.
Ich wunderte mich, daß mein Icon in der Statusbar des Windows nicht refreshed wurde, wenn das Fenster von anderen verdeckt wurde.
Ich habe eine kleine grüne LED als Icon... und die war danach jedes mal wech.
Initialisiert habe ich das ganze so:
Ich ging nämlich davon aus, daß der Befehl StatusBarIcon sich eine Kopie des Icons anlegt und ich das ursprüngliche Icon wieder freigeben kann.
Dem ist nicht so! Richtig wäre es also so:
Gruß Markus
PS: Ach so, weshalb ich überhaupt darauf gekommen bin das Icon gleich wieder zu free'n. Weil: Ein Icon in das Systray gepackt, bleibt auch nach dem Freigeben des Icons dort - auch wenn die Trayleiste zwischenzeitlich überdeckt war. Tja, und da habe ich es danach für das StatusBarIcon genauso machen wollen.
:
Ich wunderte mich, daß mein Icon in der Statusbar des Windows nicht refreshed wurde, wenn das Fenster von anderen verdeckt wurde.
Ich habe eine kleine grüne LED als Icon... und die war danach jedes mal wech.
Initialisiert habe ich das ganze so:
Code: Alles auswählen
CatchImage(0, ?LedGreen) : StatusBarIcon(#StatusBar_Main, 0, ImageID(0) ) : FreeImage(0)
...
LedGreen: IncludeBinary "C:\Mein_Datenpfad\LedGreen.ico"
Dem ist nicht so! Richtig wäre es also so:
Code: Alles auswählen
CatchImage(0, ?LedGreen) : StatusBarIcon(#StatusBar_Main, 0, ImageID(0) )
[... Programmcode...]
Exit:
; Und erst am Ende des Programmes
FreeImage(0)
; Wobei PB das ja auch von selbst freigibt.
PS: Ach so, weshalb ich überhaupt darauf gekommen bin das Icon gleich wieder zu free'n. Weil: Ein Icon in das Systray gepackt, bleibt auch nach dem Freigeben des Icons dort - auch wenn die Trayleiste zwischenzeitlich überdeckt war. Tja, und da habe ich es danach für das StatusBarIcon genauso machen wollen.

Code: Alles auswählen
AddSysTrayIcon (1, WindowID(#Window_Main), CatchImage(#TempPic, ?Icon)) : FreeImage(#TempPic)