Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TImage - mehrstufige Transparenz?


whitef - Fr 22.04.11 13:17
Titel: TImage - mehrstufige Transparenz?
hi,

wollte mal fragen ob ihr wisst wie man ein TImage mehrstufig tranzparent schalten kann.
Also so in etwa:


Delphi-Quelltext
1:
2:
3:
Image1.opacity := 255;  // Die dahinterliegenden Komponenten kommen gar nicht zum vorschein.
Image1.opacity := 100;  // Die dahinterliegenden Komponenten kommen etwas zum vorschein.
Image1.opacity := 0;    // Die dahinterliegenden Komponenten werden komplett angezeigt.

so dass mann einen wert von 0 - 255 für die sichtbarkeit des images bestimmen kann... gibts evtl. ne komponente die sowas kann?


Hintergrund:
Mittels Timer möchte ich gerne ein Fade-in hervorrufen um alles abzudunkeln, um gewisse komponenten dem Benutzer zu verdeutlichen.

mfg


bummi - Fr 22.04.11 17:17

Ein frei schwebendes TForm, oder über ein GraphicControl mit manipuliertem Alphakanal des Bitmaps (Abdecken funktioniert dann aber nicht mit WinControls)


jaenicke - Fr 22.04.11 19:07

Ich nehme dafür einfach einen Screenshot des Formulars, den ich dann in eine TPaintBox (oder ein TImage), die auf einem Panel liegt, setze. Dann kann ich problemlos mit AlphaBlend arbeiten und so entsprechende Effekte erzeugen.

Vor das Panel mit dem Bild kommt dann das Control, das entsprechend hervorgehoben werden soll.

Nachteile:
Es ist nicht gerade effizient.
Bei einer Größenänderung oder Inhaltsänderung hinter dem Panel kann das davorgeblendete Image diese nicht anzeigen.