Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Delphi Aero Glass Effekt für Delphi-Forms (https://www.delphipraxis.net/74538-aero-glass-effekt-fuer-delphi-forms.html)

zahor 20. Jun 2007 16:29

Re: Aero Glass Effekt für Delphi-Forms
 
Also unter dem finalen Vista Home Premium geht es definitiv nicht, wenn ich es mit D7 Enterprise kompiliere.

Cyberbob 27. Jul 2007 13:48

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schade eigentlich, das die Kompo zwar für die Beta aber nicht die Final funtioniert. Kennt sonst jemand ne Message, die ich senden kann, m mein Formular im Aero-Glass Lokk darstellen zu können?
Oder wird es bald eine Überarbeitete Version dieser Kompo geben


[EDIT] Hab was gefunden! Verstehe es nur noch nicht ganz. Siehe anhang!
[EDIT2] http://msdn.microsoft.com/msdnmag/is...lt.aspx?loc=de

zahor 27. Jul 2007 15:28

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 2)
Also ich habs mal ausprobiert und festgestellt: Alles, was schwarz ist (Also die Caption von den Buttons etc.) ist leider transparent, wie Hanzmeierschulz in Beitrag #31 beschrieben hat.
Das ganze in ein Panel zu setzen (EDIT: oder mit Frames zu arbeiten) ändert auch nichts.
EDIT3: Mit Canvas kann man auch nichts draufzeichnen, zum Beispiel nen einfachen Text oder so.

EDIT2: Ich hab den transparenten Bereich jetzt so geändert, dass alles bis auf eine Fläche, auf der zwei Buttons sind, transparent ist. Diese werden dann korrekt dargestellt.
Die restlichen Buttons werden aber transparent gezeichnet. Da man nur einen Bereich zeichnen kann, ist es ja keine Lösung, alle Elemente auf einen Haufen zu knallen.
Zu den Angaben MTop etc: das bedeutet, BIS MTop ist transparent, BIS MRight auch etc, jeweils von Oben bzw. Rechts usw.

atgis 5. Okt 2007 13:27

Re: Aero Glass Effekt für Delphi-Forms
 
Ist es auch möglich den Glass Effekt unter XP zum laufen zu bringen?

sakura 5. Okt 2007 13:46

Re: Aero Glass Effekt für Delphi-Forms
 
Zitat:

Zitat von atgis
Ist es auch möglich den Glass Effekt unter XP zum laufen zu bringen?

Nur mit extra Skinning-Engines. Windows XP selbst unterstützt das gar nicht.

...:cat:...

mkinzler 5. Okt 2007 13:46

Re: Aero Glass Effekt für Delphi-Forms
 
Wenn Microsoft sich entscheidet die API für XP nachzurüsten.

01001 5. Okt 2007 13:48

Re: Aero Glass Effekt für Delphi-Forms
 
Das wurde schon ein paar Beiträge darüber geklärt. Nein. Wenn es ginge, gäbe es ja überhaupt keinen Grund Vista zu kaufen...

Cyberbob 5. Okt 2007 17:10

Re: Aero Glass Effekt für Delphi-Forms
 
Microsoft hat sogar alles getan, um Programme zu stoppen, die das nachrüsten können.

MarcoWarm 19. Okt 2007 10:01

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 4)
Da die aktuelle Version der Komponente nur ein schwarzes Fenster bringt hab ich mal einen Anfang gemacht die DWM API zu übersetzen und nach einer alternativen (und meiner Meinung nach) korrekten Lösung des Problems zu suchen.
Im Anhang befindet sich die API und ein kleines Demo-Programm.
ein paar Anmerkungen:
Da "Delphifarben" keinen Alphachannel besitzen muss für die korrekte Transparenzdarstellung die Fensterfarbe schwarz sein. Das bedeutet jedoch, daß sämtliche schwarze labels oder andere GDI-gezeichneten Objekte ebenfalls transparent dargestellt werden. Um trotzdem schwarzen Text auszugeben muss man dann GDI+ bemühen.
Das Demoprojekt läuft auch nur unter Vista (siehe nächsten Post) ... Ich hab keine Plausibilitätskontrollen eingefügt, weil es ja nur eine Demonstration ist.

Ich hoffe es nützt dem einen oder anderen. Das Beispiel und die API sind Produkt von lediglich 2Stunden Arbeit... Also bitte keine zu harte Kritik. Es ist nur quick-n-dirty. Wer Spaß und Zeit hat sollte daraus eine komplette API Übersetzung (samt Komponente?) machen. Sehr schön wäre es auch die Thumbnailpreviews anzuzeigen (*träum*)
Die Anleitungen : http://msdn2.microsoft.com/en-us/library/aa969540.aspx

alias5000 19. Okt 2007 16:23

Re: Aero Glass Effekt für Delphi-Forms
 
Eine kleine Kleinigkeit:
Unter WinXP steht das alles natürlich nciht zur Verfügung. Dein Demoprojekt erzeugt aber auch einen haufen AVs dann.
Auf meinem Vista rechner schau ich mir das noch an

Gruß
alias5000

MarcoWarm 19. Okt 2007 19:46

Re: Aero Glass Effekt für Delphi-Forms
 
Zitat:

Zitat von alias5000
Unter WinXP steht das alles natürlich nciht zur Verfügung. Dein Demoprojekt erzeugt aber auch einen haufen AVs dann.

Irgendwie wäre ich nie auf die Idee gekommen es unter XP auszuprobieren. Mir ist der Sachverhalt vollkommen klar. Das problem lässt sich mit einem einfachen If-Statement lösen. Wenn die DWM-Library nicht geladen werden kann, dann wird das Programm beendet oder ggf. ne Message ausgegeben

gute Nacht :-)

mkinzler 19. Okt 2007 19:48

Re: Aero Glass Effekt für Delphi-Forms
 
Oder vor dem Laden das BS überprüfen.

MarcoWarm 19. Okt 2007 19:50

Re: Aero Glass Effekt für Delphi-Forms
 
Aber wie gesagt ist es ja eine DEMO der API und kein vollwertiges Programm. Welchen Sinn hätte es ein Demoprogramm für ein Betriebssystem lauffähig zu machen, für welches es nicht bestimmt ist (was sollte es dann auch demonstrieren)? Aber ich würde mich dann doch lieber wieder auf sachliche Kritik verlegen... danke

zahor 21. Okt 2007 17:24

Re: Aero Glass Effekt für Delphi-Forms
 
endlich geht's wieder!
danke!!!!!!!!!!! :dancer: :bounce1:

almisoft 29. Okt 2007 20:37

Re: Aero Glass Effekt für Delphi-Forms
 
Danke Marco für dein Codebeispiel, welches wunderbar funktioniert. Weiß aber jemand, wie man erreicht, dass alle Objekte, die auf dem Form abgelegt werden _nicht_ transparent angezeigt werden. Ich arbeite mit Delphi 7. Unter Delphi 2007 kann man zumindest bei einigen Objekten wie TButton einfach die Eigenschaft DoubleBuffered auf true setzen, damit der Button nicht transparent erscheint. Bei TPanel klappt das aber nicht. Und unter Delphi 7 geht bewirkt DoubleBuffered nichts.

Alexander Miehlke

MarcoWarm 1. Nov 2007 06:20

Re: Aero Glass Effekt für Delphi-Forms
 
Es ist ja eigentlich nicht empfehlenswert zu viele Controls auf die Glasfläche zu legen. Schließlich ist das ja nur ein optisches Schmankerl und man sollte dessen Einsatz nicht übertreiben. Wenn man schon schick auf die Glasfläche zeichnen möchte sollte man dann auf GDI+ ausweichen.

Cyberbob 1. Nov 2007 13:19

Re: Aero Glass Effekt für Delphi-Forms
 
und wie mache ich das? wie kann ich ein Label oder nen TImage in GDI+ zeichnen lassen?

MarcoWarm 1. Nov 2007 13:30

Re: Aero Glass Effekt für Delphi-Forms
 
GDI+ kommt in unserer Delphisphäre leider noch vieeel zu selten vor... daher findet man in der Suche leider nicht so viel. Am besten du besorgst dir erstmal GID+ API ( http://www.progdigy.com/modules.php?name=gdiplus ) und schaust dir die Beispiele an ... das ist alles recht selbsterklärend

K.S.M. 11. Feb 2008 12:25

Re: Aero Glass Effekt für Delphi-Forms
 
:cheer: Hurra, es funktioniert! :cheer:

Kann man die Hintergrundfarbe, die in den Glaseffekt geändert wird, ändern? (Schwarz ist ein wenig ungünstig)

zahor 11. Feb 2008 13:05

Re: Aero Glass Effekt für Delphi-Forms
 
und was genau hast du gemacht?

smallsmoker 12. Feb 2008 21:54

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 1)
vieleicht vertuhe ich mich ja aber wozu das ganze ?
bei mir gibt es bei jeder vcl anwendung ne eigenschaft tglassframe der form die das alles auch kann :)
vermute das das neu in delphi 2007 is ..
mfg smallsmoker

Namenloser 12. Feb 2008 21:59

Re: Aero Glass Effekt für Delphi-Forms
 
Hi,
wie du schon schreibst, das Feature ist erst ab BDS2007 verfügbar. Wenn man den Effekt in älteren Delphiversionen nutzen möchte, muss man eben Umwege gehen und die API direkt ansprechen.

about_blank 25. Apr 2008 17:26

Re: Aero Glass Effekt für Delphi-Forms
 
Hallo Leute, bei mir gibts nur ein Problem.

Auch das Projekt auf der 4. Seite bringt nichts.

Mein problem:
Ich habe ein Vista Aero Fenster aber die Textfarbe, egal welche, wird auch als transperent angezeigt.
Habe auch schon in mehreren Foren Hilfe gesucht, aber hier und bei joejoe.org könnte das Problem lösbar sein.
Auf dem joejoe.org thread hat ein Mitglieg geschrieben, dass die Farbe Schwarz als WIN Aero gerendert wird und daher es auch nicht auf Objekten angezeigt wird.
Link:
http://www.joejoe.org/forum/index.ph...dpost&p=190575

Screenshots: (siehe Link oben)

Das mit den Frames check ich jetzt schon, nur das Problem mit dem GLass.

Vielen Dank im Voraus

mfg.

zahor 25. Apr 2008 19:16

Re: Aero Glass Effekt für Delphi-Forms
 
was der mensch bei joejoe braucht heißt doublebuffering.
einfach in oncreate der form für jede komponente, die diese eigenschaft hat (labels haben sie nicht, die sind für windows keine komponenten sondern werden direkt auf die api gezeichnet wenn ich mich nicht ganz täusche)
Delphi-Quellcode:
Komponente.DoubleBuffered := true;
dann sind alle labels ganz toll schwarz oder wie auch immer :-)
bei mir funktioniert es jedenfalls prächtig.

Cyberbob 25. Apr 2008 21:36

Re: Aero Glass Effekt für Delphi-Forms
 
Unter Delphi 2007 tut es das, ja. Aber ich als TD nutzer musste feststellen, dass es nicht funktioniert!

about_blank 26. Apr 2008 08:36

Re: Aero Glass Effekt für Delphi-Forms
 
Danke zahor es funktioniert, aber nur nicht bei einem MainMenu

Und noch ne Frage wie kann ich die Hintergrundfarbe von einem Memo-Feld auf transperent stellen?


nochmals thx, sonst hätt ich in C# programmiert mit einem DWm Wrapper

mfg.

Prototypjack 26. Apr 2008 08:41

Re: Aero Glass Effekt für Delphi-Forms
 
Zitat:

Zitat von Cyberbob
Unter Delphi 2007 tut es das, ja. Aber ich als TD nutzer musste feststellen, dass es nicht funktioniert!

DoubleBuffered arbeitet intern komplett anders ab 2007. Ich musste das selbst leider schmerzlich feststellen (vgl. http://www.delphipraxis.net/internal...t.php?t=127812). Dort steht eine Lösung von mir, die aber alle Ecken, die transparent sein sollten (siehe Bild) schwarz färbt.

Ich suche immer noch nach einer Lösung, aber vielleicht hilft dir das ja.

Grüße,
Max

zahor 26. Apr 2008 09:49

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 3)
So, jetzt mal die Schilderung wie das ganze bei D2007 aussieht:
Mein Beispiel-"Projekt" sieht folgendermaßen aus: Ich habe ein Formular mit einem button drauf, und bei formular ist SheetOfGlass enabled.
Für
Delphi-Quellcode:
button1.DoubleBuffered := true;
form1.DoubleBuffered := true;
habe ich einen Rand an den Ecken des Buttons in der Farbe des Formulars.
Bei nur
Delphi-Quellcode:
  button1.DoubleBuffered := true;
habe ich den gleichen schwarzen Rand wie Prototypjack.
Also, prototypjack, probier's mal mit doublebuffering bei der form.
Mit nur
Delphi-Quellcode:
  form1.DoubleBuffered := true;
ist die caption des buttons natürlich transparent - wie zu erwarten war. Screenshots im Anhang.

[edit=MrSpock]Layout repariert. Mfg, MrSpock[/edit]

Jonas 12. Mai 2008 03:10

Re: Aero Glass Effekt für Delphi-Forms
 
Kann denn nciht mal einer http://www.codeproject.com/KB/vista/...indowsApp.aspx diese Function übersetzen?
Dann muss man das rumgehampel mit den Margings und so nicht mehr machen. Ich denke das dort ist die ideale lösung?!

lbccaleb 6. Aug 2008 21:48

Re: Aero Glass Effekt für Delphi-Forms
 
Ich hab da auch noch mal eine Frage zu, weiß Jemand ob man die Alpha-Werte verändern kann??
Also der Wert, der die Transparente Fläche markiert, standartmäßig ist das ja Schwarz?!
Und wenn ja wie?

turboPASCAL 6. Aug 2008 22:09

Re: Aero Glass Effekt für Delphi-Forms
 
Zitat:

Zitat von lbccaleb
standartmäßig ist das ja Schwarz?!

Nein, nicht schwarz sondern $00005050.
Veränderbar ist das nicht. ...ich muss doch mal "wischda" anschmeissen.



// Edit: Äh, Das gibt anscheinend Vista vor. Da muss man mal genauer nachforschen...

MCXSC 24. Aug 2008 22:52

Re: Aero Glass Effekt für Delphi-Forms
 
Wie schaut das ganze denn unter XP aus? Läuft eine EXE mit der Komponente überhaupt?

lbccaleb 25. Aug 2008 12:36

Re: Aero Glass Effekt für Delphi-Forms
 
Eigentlich nicht, da in XP kein Desktop Windows Manger mit den Funktionen bereit steht...

turboPASCAL 25. Aug 2008 12:50

Re: Aero Glass Effekt für Delphi-Forms
 
Zitat:

Zitat von MCXSC
Wie schaut das ganze denn unter XP aus?

Wie XP halt. ;)

Zitat:

Zitat von MCXSC
Läuft eine EXE mit der Komponente überhaupt?

Jo. Also mit meiner schon.

Zitat:

Zitat von lbccaleb
Eigentlich nicht, da in XP kein Desktop Windows Manger mit den Funktionen bereit steht...

Eigentlich doch, da die Funktionen dynamisch geladen werden wenn die dwmapi.dll vorhanden ist.
Jedenfalls macht das meine Unit. ( Wenn man beim Programieren etwas Obacht gibt. ;) )

lbccaleb 25. Aug 2008 13:10

Re: Aero Glass Effekt für Delphi-Forms
 
Was ist denn deine Unit?? Also ich benutze für so was eine etwas weiterentwickelte Unit, von der hier schon geposteten! Nur in der sind ja leider noch nciht alles funktionen der DWMAPI.dll enthalten, muss man sich vllt mal die Zeit nehmen und die ein wenig weiterentwickeln...

turboPASCAL 25. Aug 2008 16:11

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja wo ist sie denn ? Na hier: (siehe Anhang)
Warnung: Absolute Beta.- & Testversion

Zitat:

muss man sich vllt mal die Zeit nehmen und die ein wenig weiterentwickeln...
jupp.

// Edit:

So, kleines Update der Demo. Funktionsfähigkeit für XP war nicht gegeben.
Kleiner Dummheitsfehler der eine Stunde anstrengender Suche bedurfte.
Tja man wird vergesslich...

Cyberbob 26. Aug 2008 14:05

Re: Aero Glass Effekt für Delphi-Forms
 
Sieht eigentlich ganz gut aus. Allerdings werden Labels und Schrift von Buttons immer noch transparent angezeigt. Schade, dass man das nicht mit nem einfachen befehl ändern kann.

turboPASCAL 26. Aug 2008 14:23

Re: Aero Glass Effekt für Delphi-Forms
 
Zitat:

Zitat von Cyberbob
Sieht eigentlich ganz gut aus. Allerdings werden Labels und Schrift von Buttons immer noch transparent angezeigt. Schade, dass man das nicht mit nem einfachen befehl ändern kann.

Ich habe in Vista selbst noch kein Programm gesehen das solch ein Formdesign (wie im Demo) hat oder so genutzt wird.
Da die Vista theme DLL drübermalt, zB. über eien Button kan man IMHO nix machen.

PS.:

Wenn jmd grade Vista laufen hat kann er mal bitte einen Screenshot des Fensters machen ?
Ich muss sonst erst umstöpseln. ^^

Polynom 26. Aug 2008 16:58

Re: Aero Glass Effekt für Delphi-Forms
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Ich hab mal die Demo aus dem Post #76 runtergeladen und ausprobiert. Und jetzt wollt ich mal fragen, ob das so sein soll ... Weil nach Aero-Glass-Effekt sieht das nicht aus.
Ich hab mit meinem Delphi 2007 noch schnell eine Form mit "SheetOfGlass" auf "True" daneben gesetzt, damit man sieht, dass es sonst funktionieren müsste.

Mit freundlichen Grüßen, Michi

turboPASCAL 26. Aug 2008 17:35

Re: Aero Glass Effekt für Delphi-Forms
 
Doch, das schon richtig.selle mal im Code folgendes um:

Delphi-Quellcode:
// uMain.pas
WM_CREATE:
      begin
        //...

        //DWM_EnableBlurBehind(_hWnd, TRUE);
        //DWM_ExtendFrameIntoClientArea(_hWnd, 50,0,0,0);
        DWM_ExtendFrameIntoAll(_hWnd); // <--<<<

        ShowWindow(_hWnd, SW_SHOWNORMAL);
        UpdateWindow(_hWnd);
      end;

// und bei:

function WinMain(hInstance: HINST; hPrevInstance: HINST;
  lpCmdLine: PChar; nCmdShow: Integer): Integer; stdcall;
var
  WndClassEx: TWndClassEx;
  msg: TMsg;
begin
  InitCommonControls;

  bsBKColor := CreateSolidBrush(RGB(0,0,0)); // <--<< die Hintergrundfarbe ändern


PS.: Apropo Delphi 2007 und SheetOfGlas, wie ist es denn da mit einem Button auf der Form ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.
Seite 2 von 3     12 3      

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