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.
|
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 |
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. |
Re: Aero Glass Effekt für Delphi-Forms
Ist es auch möglich den Glass Effekt unter XP zum laufen zu bringen?
|
Re: Aero Glass Effekt für Delphi-Forms
Zitat:
...:cat:... |
Re: Aero Glass Effekt für Delphi-Forms
Wenn Microsoft sich entscheidet die API für XP nachzurüsten.
|
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...
|
Re: Aero Glass Effekt für Delphi-Forms
Microsoft hat sogar alles getan, um Programme zu stoppen, die das nachrüsten können.
|
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 |
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 |
Re: Aero Glass Effekt für Delphi-Forms
Zitat:
gute Nacht :-) |
Re: Aero Glass Effekt für Delphi-Forms
Oder vor dem Laden das BS überprüfen.
|
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
|
Re: Aero Glass Effekt für Delphi-Forms
endlich geht's wieder!
danke!!!!!!!!!!! :dancer: :bounce1: |
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 |
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.
|
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?
|
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
|
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) |
Re: Aero Glass Effekt für Delphi-Forms
und was genau hast du gemacht?
|
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 |
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. |
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. |
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:
dann sind alle labels ganz toll schwarz oder wie auch immer :-)
Komponente.DoubleBuffered := true;
bei mir funktioniert es jedenfalls prächtig. |
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!
|
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. |
Re: Aero Glass Effekt für Delphi-Forms
Zitat:
Ich suche immer noch nach einer Lösung, aber vielleicht hilft dir das ja. Grüße, Max |
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:
habe ich einen Rand an den Ecken des Buttons in der Farbe des Formulars.
button1.DoubleBuffered := true;
form1.DoubleBuffered := true; Bei nur
Delphi-Quellcode:
habe ich den gleichen schwarzen Rand wie Prototypjack.
button1.DoubleBuffered := true;
Also, prototypjack, probier's mal mit doublebuffering bei der form. Mit nur
Delphi-Quellcode:
ist die caption des buttons natürlich transparent - wie zu erwarten war. Screenshots im Anhang.
form1.DoubleBuffered := true;
[edit=MrSpock]Layout repariert. Mfg, MrSpock[/edit] |
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?! |
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? |
Re: Aero Glass Effekt für Delphi-Forms
Zitat:
Veränderbar ist das nicht. ...ich muss doch mal "wischda" anschmeissen. // Edit: Äh, Das gibt anscheinend Vista vor. Da muss man mal genauer nachforschen... |
Re: Aero Glass Effekt für Delphi-Forms
Wie schaut das ganze denn unter XP aus? Läuft eine EXE mit der Komponente überhaupt?
|
Re: Aero Glass Effekt für Delphi-Forms
Eigentlich nicht, da in XP kein Desktop Windows Manger mit den Funktionen bereit steht...
|
Re: Aero Glass Effekt für Delphi-Forms
Zitat:
Zitat:
Zitat:
Jedenfalls macht das meine Unit. ( Wenn man beim Programieren etwas Obacht gibt. ;) ) |
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...
|
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:
// 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... |
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.
|
Re: Aero Glass Effekt für Delphi-Forms
Zitat:
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. ^^ |
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 |
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. |
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