Seite 1 von 1

Icon und Transparenz

Verfasst: 10.04.2010 15:39
von ThoPie
Hallo,
ich nutze ein ImageGadget um ein Icon (48x48, 32bit mit Alpha-Kanal) anzuzeigen.
Zum Füllen nutze ich

Code: Alles auswählen

SetGadgetState(#image,ImageID(#icon))
Hier wird dann der Hintergrund grau angezeigt. Erst bei einem erneuten Aufruf von

Code: Alles auswählen

SetGadgetState(#image,ImageID(#icon))
wird das Icons transparent.
Was mache ich da falsch?
Vielen Dank.

Re: Icon und Transparenz

Verfasst: 10.04.2010 15:45
von ts-soft
Ich vermute mal das eventloop wird zu lange verlassen. Weil SetGadgetState erfordert, wie alle anderen
Gadgetsachen auch, einen EventLoop, selbst wenn dieser leer ist, um die Darstellung zu aktualisieren.

Re: Icon und Transparenz

Verfasst: 10.04.2010 15:58
von ThoPie
Ach so.
Also ist wohl der doppelte Aufruf zwar nicht elegant, aber wohl die beste Lösung?

Re: Icon und Transparenz

Verfasst: 10.04.2010 16:06
von ts-soft
ThoPie hat geschrieben:Ach so.
Also ist wohl der doppelte Aufruf zwar nicht elegant, aber wohl die beste Lösung?
Die Lösung ist Müll, weil die nicht unbedingt auf jeder Windows-Version erfolg verspricht.

Für die richtige Lösung müßte ich den Code-Aufbau sehen. Sollte das ganze am Anfang,
bevor das EventLoop existiert, passieren, wäre es wohl sinnvoll das Fenster erst anzuzeigen,
wenn es aufgebaut ist. Dann könnte man auch ein:

Code: Alles auswählen

While WindowEvent() : Wend
einbauen. Aber nur dann!
Ansonsten mußte Deinen Code umstrukturieren, weil es werden dann bestimmt an anderen
Stellen auch die Events nicht richtig bearbeitet, was ja nicht immer gleich zu falscher Dar-
stellung führt.