AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Form mit PNG Skin und VCL Controls
Thema durchsuchen
Ansicht
Themen-Optionen

Form mit PNG Skin und VCL Controls

Ein Thema von Coder90 · begonnen am 25. Aug 2006 · letzter Beitrag vom 18. Sep 2011
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von Coder90
Coder90
Registriert seit: 8. Nov 2004
Edit//
turboPASCAL hat wahrscheinlich eine bessere Lösung gefunden

http://www.delphipraxis.net/internal...=606056#606056

Hi
Nach endlosem rumgefriemel hab ichs endlich geschafft.

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.

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
Miniaturansicht angehängter Grafiken
skinbl1_901.png  
Angehängte Dateien
Dateityp: zip alphaform_133.zip (164,8 KB, 626x aufgerufen)
Dateityp: pas gr32_png_477.pas (2,4 KB, 598x aufgerufen)
Dateityp: zip alphaformexe_150.zip (430,8 KB, 645x aufgerufen)
 
Mark90
 
#21
  Alt 27. Mär 2007, 18:53
Hi

alle!

nach kurzem probieren hab ich es geschafft den xp-style bei meiner png form zu verwenden!
Miniaturansicht angehängter Grafiken
unbenannt-1_251.jpg  
  Mit Zitat antworten Zitat
Yheeky
 
#22
  Alt 8. Mai 2007, 21:06
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!
  Mit Zitat antworten Zitat
Benutzerbild von Blink
Blink

 
Turbo Delphi für Win32
 
#23
  Alt 8. Mai 2007, 21:33
Zitat von Yheeky:
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!
Hi

Als Ressource in die exe mit einbinden. Vielleicht hilft dir das ja HIER
  Mit Zitat antworten Zitat
Yheeky
 
#24
  Alt 10. Mai 2007, 18:58
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 :-/
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#25
  Alt 11. Mai 2007, 09:44
Zitat:
Egal was ich mache (auch wenn ich ein TButton auf die Form setze) wird nichts angezeigt :-/
Lies dir doch bitte mal diesen Thread durch, hier wurde das wieso und warum schon "durchgekaut".
(glaube ich... )

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.
Matti
  Mit Zitat antworten Zitat
kalmi01
 
#26
  Alt 11. Mai 2007, 12:00
@turboPASCAL: so gibts kein MemoryLeak
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
  PNGBmp32.Free;
  ScrBmp32.Free; <<< hat gefehlt
end;
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#27
  Alt 12. Mai 2007, 10:37
Zitat von kalmi01:
@turboPASCAL: so gibts kein MemoryLeak ...
Es stimmt schon das dort am Ende eine Freigabe einer Resource fehlte die aber nicht so tragisch ist/war. Es lag an etwas anderem und dieser Fehler wurde beseitigt.

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 ? )
Matti
  Mit Zitat antworten Zitat
kalmi01
 
#28
  Alt 12. Mai 2007, 14:44
Zitat von turboPASCAL:
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.
Nicht nur das !
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.
  Mit Zitat antworten Zitat
RobertP

 
Turbo Delphi für Win32
 
#29
  Alt 10. Jun 2007, 14:20
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 )
Robert
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#30
  Alt 10. Jun 2007, 15:45
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 ?
Miniaturansicht angehängter Grafiken
screenshot_638.jpg  
Matti
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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