Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FM und Transparenz (https://www.delphipraxis.net/170047-fm-und-transparenz.html)

stahli 28. Aug 2012 09:44

FM und Transparenz
 
Habe mich mit FM noch nicht beschäftigt, aber mal eine generelle Frage:

Ermöglicht FM eigentlich "echte Transparenz"?
In der VCL kann man das ja nur versuchen nachzubilden (gleiche Farbe, Hintergrund kopieren, Regionen definieren).
Ein echtes transparentes Panel, das unsichtbar über beliebige Controls bewegt wird und dabei andere sichtbare Controls enthält, ist aber nicht möglich.

Ermöglicht FM so etwas?

himitsu 28. Aug 2012 09:56

AW: FM und Transparenz
 
Im Prinzip ja, also wenn deine Komponente keinen Hintergrund zeichnet, dann ist diese Komponente transparent.

Es wird quasi alles auf das selbe "Canvas" gezeichnet, wärend bei der VCL mehrere Window/Canvas vorhanden sind.

s.h.a.r.k 28. Aug 2012 09:56

AW: FM und Transparenz
 
Habe FM zwar noch nie genutzt, aber ich meine, das müsste FM unterstützen! Habe schon einige Videos gesehen, in denen ziemlich viel rumgeflogen ist und teilweise transparent war. FM greift ja direkt auf die Grafikschnittstelle zu und nutzt keine WinAPI. Ist aber alles solides Halbwissen :stupid:

himitsu 28. Aug 2012 10:00

AW: FM und Transparenz
 
Wo ich ich aber fragen würde, wie das mit der Fenstertransparenz aussieht.
In der VCL kannst du ja das ganze Fenster teiltransparent/durchsichtig (Alpha) und/oder teilweise volltransparent/durchklickbar machen und dazu auch noch das Aero-Glass-Zeugs.

z.B. halbdurchsichtige Bereiche und abgerundete Ecken, bzw. sonstwelche Fensterformen.

s.h.a.r.k 28. Aug 2012 10:08

AW: FM und Transparenz
 
Zitat:

Zitat von himitsu (Beitrag 1180254)
Wo ich ich aber fragen würde, wie das mit der Fenstertransparenz aussieht.
In der VCL kannst du ja das ganze Fenster teiltransparent/durchsichtig (Alpha) und/oder teilweise volltransparent/durchklickbar machen und dazu auch noch das Aero-Glass-Zeugs.

z.B. halbdurchsichtige Bereiche und abgerundete Ecken, bzw. sonstwelche Fensterformen.

Das Thema gabs glaub schon öfter hier im Forum, u.a. von mir begonnen ;) Ich denke, es geht ihm wirklich um transparente Controls und nicht um transparente Fenster.

mkinzler 28. Aug 2012 10:09

AW: FM und Transparenz
 
Mit Firemonkey wird das ganze Fenster unsichtbar, wenn man die Transparenz aktiviert.

stahli 28. Aug 2012 10:10

AW: FM und Transparenz
 
Ja, es ging mir um Controls (bzw. auch embedded Forms).
Für "freie" Fenster habe ich das analog zur VCL vorausgesetzt.

himitsu 28. Aug 2012 10:11

AW: FM und Transparenz
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1180257)
Das Thema gabs glaub schon öfter hier im Forum, u.a. von mir begonnen ;) Ich denke, es geht ihm wirklich um transparente Controls und nicht um transparente Fenster.

Da war mir noch nichts aufgefallen. :oops:

Nja, bezüglich der Komponenten ... wie gesagt, wenn die Komponente selber keinen Hintergrund zeichnet, bzw. wenn das abschaltbar ist, dann gibt es keinerlei Probleme und die Komponenten sind dann auch völlig transparent.


[add]
Bei den "embedded Forms" ... hmmmmmm :gruebel:

Wenn diese Forms sich wie eine "Komponente" in die andere Form reinzeichnen, dann analog zu den Komponenten
und ansonsten k.A.

stahli 28. Aug 2012 10:15

AW: FM und Transparenz
 
Zitat:

Zitat von himitsu (Beitrag 1180260)
...dann gibt es keinerlei Probleme und die Komponenten sind dann auch völlig transparent.

... und können wahlweise
- dennoch auf Mausereignisse reagieren bzw.
- alle Mausereignisse "durchlassen"?

(ich meine jetzt per Property-Definition, nicht per Überschreiben von Nachrichtenbehandlungen wie HitTest)

himitsu 28. Aug 2012 10:33

AW: FM und Transparenz
 
Die Transparent hat erstmal nichts mit der Mausbehandlung zu tun.

FMI geht die Komponenten in Z-Ebene von oben nach unten durch, prüft deren Region, also ob die Maus in der Komponente liegt (innerhalb der Außenbegrenzung) und reagiert dann entsprechend.

Wenn du es Durchklickbar haben möchtest, dann entweder die Mausereignisse ganz deaktivieren (Clickable oder wie das Property sich nannte)
oder du müßtest die Prüfmethode der Komponente überschreiben und dort den "durchsichtigen" Bereich entpsrechend ignorieren (würde ich jetzt mal so auf die Schnelle so denken).


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz