Entwickler-Ecke

Multimedia / Grafik - Alternative zu TForm.TransparentColor


AScomp - Di 15.01.08 14:55
Titel: Alternative zu TForm.TransparentColor
Hallo,

derzeit suche ich nach einer Alternative für die Eigenschaft TransparentColor einer TForm. Grund: Die Transparenz funktioniert auf älteren Systemen nicht und sorgt außerdem bei VNC für Probleme.

Im Prinzip möchte ich nur, dass eine bestimmte Farbe auf der Form immer transparent dargestellt wird, also auch ohne Form-Hintergrund. Genau das, was TransparentColor macht. So wie ich das sehe wird die Transparenz in letzterem Fall aber direkt von der Grafikkarte erzeugt, ich möchte dies nicht Hardware-abhängig machen.

Hat da jemand eine Lösung?

Danke!

P.S. Möchte auch keine Fremdkomponenten verwenden...


elundril - Di 15.01.08 15:04

einfach den hintergrund hinter dem Form nehmen und aufs form draufzeichenen wäre eine lösung.

lg elundril


AScomp - Di 15.01.08 15:07

Ja, aber das ist doch beim Bewegen und Resizen der Form sicher problematisch...


elundril - Di 15.01.08 16:11

einfach beim onresize nen verweis zum zeichnen und die WM_Move abfangen und da auch nen verweis aufs paint machen.

wär halt so meine idee.

lg elundril


Yogu - Di 15.01.08 19:17

Wie soll er denn herausfinden, was sich hinter der Form befindet, wenn die direkt darüber ist? Dann müsste das Fenster ausgeblendet, der Hintergrund eingelesen, und das Form wieder angezeigt werden. Das führt zu unerwünschten Flackereffekten. Außerdem ist es bei Filmen etc. im Hintergrund auch problematisch, da sich der Hintergrund dann ständig ändert.


turboPASCAL - Mi 16.01.08 19:12

Tipp: CreateRectRgn() und CreateRectRgn();

Damit kann man den sichtbaren Teil einer Form bestimmen / erstellen.
Das funk. zu 100 % ab Win95 bis Vista. ;)