Delphi-PRAXiS
Seite 3 von 4     123 4      

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 Transparenz wie bei Vista (https://www.delphipraxis.net/75270-transparenz-wie-bei-vista.html)

LH_Freak 24. Aug 2006 10:28

Re: Transparenz wie bei Vista
 
neeeeeeeeee, ich will ja net, dass mein Programm unbedingt wie Vista aussieht. Ich will ja, dass die Skinengine für MUH solche Alpha-dinger unterstützt ^^

JasonDX 24. Aug 2006 11:01

Re: Transparenz wie bei Vista
 
Zitat:

Zitat von LH_Freak
naja, meine lösung die ich hatte lief ohne Canvas.Pixels. Eigentlich war die Methode auch nicht so langsam :? aber es gab halt das Problem mit dem Verschieben der Form etc.

Na ja, ein ein Screenshot geht auch nicht gerade schneller :zwinker: Es is bei deiner Implementierung ws nicht so aufgefallen, da du das nicht so oft gemacht hast, was aber einem Problem fuehren wurde, siehe naechster Absatz ;)
Was mir allerdings interessieren wuerde (geht an die, die Miranda mit diesem Skin haben): Wie siehts eigentlich aus, wenn im Hintergrund ein Video laeuft, bzw. sich etwas auf einem Formular veraendert? Wird das dann auch korrekt mit der Transparenz angezeigt?
Zitat:

Zitat von LH_Freak
neeeeeeeeee, ich will ja net, dass mein Programm unbedingt wie Vista aussieht. Ich will ja, dass die Skinengine für MUH solche Alpha-dinger unterstützt ^^

Man sollte sich fuer jedes Problem wie Frage stellen: Wie gross ist der Aufwand, wie gross ist der Nutzen. Ich will dich nicht demotivieren, eine Loesung hier zu finden (wuerde mich auch interessieren, wie das ginge), aber: Man wartet seit Jaenner auf eine angekuendigte Beta, ich wuerde die jetzt nicht wegen einem kleinen AlphaBlending-Feature zurueckhalten, wenn das so Probleme mit sich bringt ;)

greetz
Mike

xaromz 24. Aug 2006 11:14

Re: Transparenz wie bei Vista
 
Hallo,
Zitat:

Zitat von Khabarakh
Ganz sicher, dass das in Miranda Standard-Controls sind ;) ?
Vielleicht lassen sich auch die VCL-Controls nutzen, indem sie bei jedem WM_PAINT auf das Bitmap gemalt werden (natürlich mit A = 255 ;) ) und danach wieder UpdateLayeredWindow aufgerufen wird.

Ich hab' das mal ausprobiert, bei mir kommen beim Benutzen von UpdateLayeredWindow keine WM_PAINT-Messages mehr an. Das wird auch der Grund sein, warum keine Controls gezeichnet werden.
Ich schau mir das demnächst aber noch mal genauer an.

Gruß
xaromz

Daniel G 24. Aug 2006 13:22

Re: Transparenz wie bei Vista
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von JasonDX
Wird das dann auch korrekt mit der Transparenz angezeigt?

Jabb, allerdings nicht bei Videos. Dort hast du einen schwarzen Rand anstatt der Transparenz. (Eigentlich wollte ich davon einen Screeny machen, blöderweise muss man für Screenshots von Videos die Hardwarebeschleunigung deaktivieren. Und wenn ich das mache, und dann ein Video abspiele, dann ist der schwarze Rand weg und die Transparenz wieder da. :stupid: Also bekommst du ein ziemlich unscharfes Digicam - Foto :P)

Und wenn man sich mal im Skin - Verzeichniss umsieht, so sind dort für alle Controls entsprechende *.png's mit Transparenz zu finden.

Coder90 24. Aug 2006 18:22

Re: Transparenz wie bei Vista
 
Man könnte vielleicht eine Form machen welche per GR32 die Skin darstellt.
Oben drüber kommt dann per StayOnTop die Hauptapplikation mit den Controls und einer durchsichtigen Farbe.
Wenn man eine Verschiebt wird halt die andere mitverschoben.
Oder könnte man das auch per Layers in einer Form machen?

Daniel G 24. Aug 2006 18:31

Re: Transparenz wie bei Vista
 
Um das jetzt mal alles zusammen zu friemeln.
Zitat:

Zitat von LH_Freak
Gibts noch eine andere Möglichkeit?

Nein. Auch Miranda nutzt, wie oben schon erwähnt, für jedes Control außer der Kontaktliste ein Bild als Control. Mal abgesehen davon würden die Default - Controls auch nicht wirklich zum Design passen...

Den Link, den Kabradingsda ( :mrgreen: ) am Anfang gepostet hat, ist imho immer noch die beste Lösung.

Coder90 24. Aug 2006 18:43

Re: Transparenz wie bei Vista
 
Zitat:

Zitat von Daniel G
Den Link, den Kabradingsda ( :mrgreen: ) am Anfang gepostet hat, ist imho immer noch die beste Lösung.

Nur kann man da keine VCL Komponenten verwenden.
Soll man dann alle Controls mit zur Laufzeit erstellten Bildern machen?
Darum hab ich ja die Idee mit der zweiten Form.

Daniel G 24. Aug 2006 18:45

Re: Transparenz wie bei Vista
 
Zitat:

Zitat von Coder90
Soll man dann alle Controls mit zur Laufzeit erstellten Bildern machen?

So schaut's aus. Die Idee mit dem zweiten Formular ist imho zu kompliziert.

Coder90 25. Aug 2006 15:10

Re: Transparenz wie bei Vista
 
Zitat:

Zitat von Daniel G
So schaut's aus. Die Idee mit dem zweiten Formular ist imho zu kompliziert.

Aber die einzige möglichkeit die mir einfällt.
Hab da mal was zusammengebaut
http://www.delphipraxis.net/internal...ct.php?t=90749

Khabarakh 25. Aug 2006 16:10

Re: Transparenz wie bei Vista
 
Zwei Fenster sind nun doch etwas zu viel Bastelei :stupid: . Besonders dass nun wieder ein Colorkey benötigt wird, ist doch eher suboptimal.
Das von mir in #20 beschriebene Verfahren sollte grundsätzlich funktionieren. Als ich mich mal 5 Minuten damit beschäftigt habe, ist mir das gleiche Problem wie xaromz aufgefallen, auf VCL-Form-Ebene(!) kommen keine Messages mehr an. Ob man sie auf höherer (z.B: Anwendungs-) Ebene abfangen kann, habe ich noch nicht getestet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Seite 3 von 4     123 4      

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