Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 4)
Edit//
turboPASCAL hat wahrscheinlich eine bessere Lösung gefunden http://www.delphipraxis.net/internal...=606056#606056 Hi Nach endlosem rumgefriemel hab ichs endlich geschafft. :D http://img134.imageshack.us/img134/785/skinbl1.png Screenshot 2 Eine transparente PNG Form mit VCL Controls. Kein geruckel beim verschieben und sehr CPU freundlich. Perfekt geeignet für kleine Utilities und Widgets. Und das Beste: es ist kostenlos. :D Die ganze Sache besteht aus 2 Forms. Einmal die Hauptform mit den Controls. Durch TransparentColor wird der Hintergrund durchsichtig gemacht. Nachteil: Komponenten mit Transparents wie die XP Buttons werden mit Rand dargestellt. Auf der 2. Form wird die PNG per Graphics32 angebracht. Dadurch gehn die VCL Controls verloren. Deshalb auf einer extra Form. Durch ein bischen friemelei wird die erste Form immer vor der zweiten Form gehalten und beim verschieben mitbewegt. Zum kompilieren braucht man die Graphics32, die GR32_PNG.pas (unten) und PNGImage. Der Source ist nicht der beste. Über Verbesserungvorschläge würd ich mich freuen. Danke Crossposting DF MfG, Coder90 |
Re: Form mit PNG Skin und VCL Controls
Warum benutzt du nicht Regions?
|
Re: Form mit PNG Skin und VCL Controls
Ich würd mal sagen, weil Regions keine Teiltransparenz zulassen?
Dennoch ist es nicht gerade 'ne ideale Lösung :shock: (hab aber och nüschts Besseres) PS: das mit dem "Rahmen" um abgerundete (XP)-Controls tauchst auch schon auf, wenn man DoubleBuffered aktiviert . liegt halt daran, daß beim Zeichnen der Hintergrund nicht vorhanden ist und daher dieser als Schwarz gezeichnet wird :( |
Re: Form mit PNG Skin und VCL Controls
Zitat:
Hab bisher nirgendwo eine bessere gesehn. |
Re: Form mit PNG Skin und VCL Controls
Ich habe die Graphics32 jetzt installiert. Aber bei der GR32_PNG.pas kommt immer eine Fehlermeldung. Soll die Komponente noch in das Package von Graphics32? Wie macht man das? Ich nutze Delphi 2005 PE.
|
Re: Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 2)
Zugegeben, die Idee ist nicht schlecht aber auch nicht neu. ;)
Ich gehe einen anderen Weg, einfach das Bitmap der Form verwenden ( FormX.GetFormImage ). Das wird dan per Transparentcolor auf das "Pngfenster" gezeichnet. Im Anhang mal ein Demoprojeckt. Aber Achtung, irgrnd wo ist noch ein dickes Memoryleak. Entweder in meinem Programm oder in der GR32.Pas. ;) An sonsten bleibt nur noch der Weg sich die Controld wie Buttons, Labels usw. neu zu schreiben und diese auf das Bitmap zu zeichnen. |
Re: Form mit PNG Skin und VCL Controls
@BrainCracked: Es reicht wenn die GR32_PNG.pas in einem Verzeichniss ist, welches Delphi im Suchpfad hat
oder im gleichen Ordner wie das Projekt, dass sie verwendet. Auserdem musst du noch PNGImage installieren. Ich hab auch D2005PE und es funktioniert. ^^ @turboPASCAL: Gute Idee ABER deine Form lässt sich nicht verschieben. Meine schon. (Einfach irgendwo aufs PNG klicken) Edit// Werds nochmal unter die Lupe nehmen |
Re: Form mit PNG Skin und VCL Controls
Zitat:
DAs Prob. war nur die Form ohne Form aber mit Controls. ;) |
Re: Form mit PNG Skin und VCL Controls
leg das transparente Form mal über nen Video ... dann ist leider Schluss mit transparenz :-( gibt es dafür nen Weg, oder ist das aussichtslos ?
|
Re: Form mit PNG Skin und VCL Controls
gibt es ne möglichkeit das auch für D5 zu machen?
|
Re: Form mit PNG Skin und VCL Controls
@Schneehasi: Graka-Overlays deaktivieren
|
Re: Form mit PNG Skin und VCL Controls
Ist es normal, dass die Schrift so "unsauber" ist (also mit dem Rand)? Das ist bei der Demo-App und bei meiner Selbsterstellten. Auf Coder90's Screenshot isses ja ganz sauber.
|
Re: Form mit PNG Skin und VCL Controls
Schau dir lieber mal die Lösung von turboPASCAL an.
Ich glaube die ist besser als meine. Bin nur leider noch nicht dazu gekommen das ausgiebig zu testen. MfG |
Re: Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 2)
Da hat die Schrift auch den pinken Rand.
Ich vermute ma, liegt an Windows, hab ja die schon kompilierten Demos genommen. |
Re: Form mit PNG Skin und VCL Controls
Das liegt daran, weil bei dir die Schriftart am Rand halbtranzparente Pixel hat.
Der gleiche Grund warum man auch den XP-Style nicht benutzen kann. Versuch mal in deinem Programm eine Schriftart einzustellen die keine halbtranzparente Pixel am Rand hat. MfG |
Re: Form mit PNG Skin und VCL Controls
Aaaahhhh... Halbtransparent - ClearType.
Fortsetzung: http://www.delphipraxis.net/internal...=680297#680297 edit: Oder kann man die Schrift ohne dieses Problem glätten? |
Re: Form mit PNG Skin und VCL Controls
Danke für die Unit, sieht sehr, sehr gut aus :P
Man kann überings das 1. transparente Fenster weglassen, wenn man einfach nach dem draggen UpdateLayeredWindow() mit den gleichen Parametern wie in FormCreate aufruft, ist mir gerade durch experiementieren aufgefallen :) Edit: Argh, dafür sieht man danach die VCLs nicht mehr, Form wird wohl doch benötigt :drunken: |
Re: Form mit PNG Skin und VCL Controls
:gruebel: Guckst Du mal Post #6 .
|
Re: Form mit PNG Skin und VCL Controls
Hmm, mein Fehler :wall: Die 1. Methode hat aber doch was, damit kann man z.B. Browser oder andere Controls masken und gleichzeitig Transparenz beibehalten.
|
Re: Form mit PNG Skin und VCL Controls
Hi Coder 90.
ich hab gerade dein Projekt getestet. Es ist wirklich Hammer. DANKE |
Re: Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
alle! nach kurzem probieren hab ich es geschafft den xp-style bei meiner png form zu verwenden! |
Re: Form mit PNG Skin und VCL Controls
Frage: Wie kann ich denn PNG fest einbinden? Ich möchte die nicht aus einer Datei heraus laden...vielleicht kann mir da ja jemand helfen.
Danke! |
Re: Form mit PNG Skin und VCL Controls
Zitat:
Als Ressource in die exe mit einbinden. Vielleicht hilft dir das ja HIER |
Re: Form mit PNG Skin und VCL Controls
Okay danke, das habe ich hinbekommen :-)
Nun hab ich noch eine Frage: Ich zeichne mit einem PNG den Umriss einer Form inklusive Titelleiste. Wie kann ich nun einen Minimieren, Maximieren bzw. Schließen Knopf einfügen? Egal was ich mache (auch wenn ich ein TButton auf die Form setze) wird nichts angezeigt :-/ |
Re: Form mit PNG Skin und VCL Controls
Zitat:
(glaube ich... :gruebel: ) Also, mit UpdateLayeredWindow wird ein 32-Bit Bitmap mit Alphakanal als "Windowsersatz" verwendet. Es wird dann nur noch dieses Bitmap auf dem bildschirm angezeigt. Will man nun irgendwelche Controls wie zB. ein Label oder Button haben muss dieser auf das 32-Bit Bitmap. Es gibt nun zwei Möglichkeiten, entweder man baut sich eigene Controls die direct auf dieses Bitmap zeichnen oder man Trickst ein wenig und kopiert das Bitmap der Form welches man über GetFormImage erhält und dieses mit TransparentColor durchsichtig gemacht hat auf das 32-Bit Bitmap. |
Re: Form mit PNG Skin und VCL Controls
@turboPASCAL: so gibts kein MemoryLeak
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin PNGBmp32.Free; ScrBmp32.Free; <<< hat gefehlt end; |
Re: Form mit PNG Skin und VCL Controls
Zitat:
Ich habe mal in Post #6 eine neuere Version hochgeladen. Das Ändert aber nichts an der Tatsache das bei der Textausgabe mit gr32.RenderText() so viele Page Faults kommen das sich das Prg. nach einer längeren Laufzeit ohne Fehlermeldung verabschiedet. ( Grund: MemoryLeak ? :gruebel: ) |
Re: Form mit PNG Skin und VCL Controls
Zitat:
Unter XP-SP2 habe ich festgestellt, das andere Fenster (Explorer, usw.) nach einiger Zeit nicht mehr korrekt funktionieren. Der rechte Rand wird ca. daumenbreit nicht mehr korrekt gezeichnet. Wie das zusammen hängt kann ich nicht sagen, aber es ist auf dem Rechenr reproduzierbar. Könnte aber mit der GraKa zusammenhängen. Unter Win2000 mit gleicher GraKa tritt der Effekt nicht auf. |
Re: Form mit PNG Skin und VCL Controls
Ist das normal dass ich bei der Lösung von turboPascal immer ne Prozessorauslastung von ~50% habe, ohne dass ich die Form bewege? Ich hab nen Athlon 64 3000+ (sollte eigentlich für Delphiforms reichen :-D )
|
Re: Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 1)
:gruebel: Nö.
CPU: AMD Athlon(tm) XP 2400+ (2,0 GHz) RAM: 512 MB GraKa: NVIDIA GeForce FX 5200 128 MB Kann das an der GraKa. liegen ? |
Re: Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
nochmal eine Frage :-) Ich habe 2 Formen auf denen meine Komponenten drauf sind. Jeder der Formen haben eine Form, mit der ich den Hintergrund über das Topic-bekannte Verfahren zeichne. So, nun folgendes: Beim Start wird Form1 und Form1Maske geöffnet. Form1Maske ist lediglich die Form mit einem transparenten Rand. Wenn ich nun auf Form1 einen Button anklicke, wird Form2 und Form2Maske geöffnet. Wenn ich nun auf Form1 klicke, kommt die Form1 in den Vordergrund, aber Form1Maske bleibt weiterhin ganz hinten in der Reihenfolge. So ergibt sich Effekt 1 im Anfang. Wenn ich jedoch auf Form1 Maske klicke (z.B. auf die Titelleiste) dann ergibt sich der gewünschte Effekt 2 im Anhang. So sollte es immer sein, auch wenn Form1 den Fokus erhält. Habe schon versucht mit den Ereignissen OnActivate und OnDeactivate rumzuspielen, aber das hat leider nicht den gewünschten Erfolg gebracht. Hat vielleicht einer eine andere oder generell eine Idee, wie ich das Problem lösen kann? Wäre super! |
Re: Form mit PNG Skin und VCL Controls
GR32.dcu ... FAIL :(
|
Re: Form mit PNG Skin und VCL Controls
Zitat:
Dann gehts bei mir. MfG |
Re: Form mit PNG Skin und VCL Controls
Moin alle!
Kann jemand eine einfache PNG Skin ohne VCL Controls machen bitte und so damit die PNG mit ins EXE reinkommt??! Hab die vom Post #6 probiert, aber das ist noch zu kompliziert für mich. Danke! |
Re: Form mit PNG Skin und VCL Controls
Liste der Anhänge anzeigen (Anzahl: 2)
sorry fürs ausgraben des alten threads :-) aber ich brauch mal hilfe.
habe eine png erstellt mit transparenten hintergrund und einfach nur ne blaue halbdurchsichtige form drauf. wenn ich nen weißen hintergrund habe sieht alles fein aus. sobald ich aber nen dunklen hintergrund hab schaut das alles irgendwie komisch aus. er behält in der eigentlich durchsichtigen fläche einen weißen kasten. vielleicht kann ja wer helfen. das ganze ist einfach mir der demo kompiliert: |
Re: Form mit PNG Skin und VCL Controls
Häng doch bitte mal den Quelltext an, ich sehe da jetzt nicht durch was du gemacht hast. :stupid:
|
Re: Form mit PNG Skin und VCL Controls
arghl falsche zip verwendet. habe den source von Coder90 genommen und damit getestet. Jetzt versuch ich erstmal deinen Source (denke der wird besser funktionieren right?) und wenn ich dann noch Probleme habe schreie ich nochmal :wink:
Manchmal ist das nicht von Vorteil 3 zips zu nehmen und zu versuchen irgendwas damit hin zu bekommen. :wall: Danke schonmal |
Re: Form mit PNG Skin und VCL Controls
Hallo,
ich habe das alles gerade ausprobiert. Mit den integrierten / beigelegten PNGs klappt dies auch wunderbar. Probiere ich dies allerdings mit dem folgenden: 98 KB 24 Bit PNG 500x300px Erstellt mit Photoshop. http://i39.tinypic.com/fp2qnr.png ... klappt dies nicht. Ideen? Edit/p.s.: Keine Fehlermeldung, es wird einfach nicht geleaden. Wie folgt getestet...
Delphi-Quellcode:
ersetzt mit
1: PngImg.LoadFromResourceName(hInstance, 'MYPNGIMAGE2');
Delphi-Quellcode:
1: PngImg.LoadFromFile('C:\blabla.png');
|
Re: Form mit PNG Skin und VCL Controls
Und was soll damit passieren und oder nicht passieren ? :gruebel:
|
Re: Form mit PNG Skin und VCL Controls
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 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