Delphi-PRAXiS

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 Titelleiste Zeichnen (https://www.delphipraxis.net/74605-titelleiste-zeichnen.html)

Real_Thunder 6. Aug 2006 06:01


Titelleiste Zeichnen
 
Ich habe volgenes vor:

Ich Möchte die Titelleiste bw Das Fenster Aussehen von meinem Programm Ändern

Also das es icht Aussieht wie "Normale Fenster"

hat jeamnd eine Idee oder eine Quelle wie man soetwas bewerkstelligen kann??

Wie um Beispiel beim Yahoo Messanger oder ICQ ......

Fr Hilfe währe ich sehr dankar

Gegoogelt und hier in der Hilfe habe ich schon Nachgeschaut.. Aber nichts Brauchbares Gefunden


MfG Real Thunder

Mazel 6. Aug 2006 09:05

Re: Titelleiste Zeichnen
 
HI,

mit der Windows32 API Funktion CreateRoundRectRgn geht das ganz einfach. Hier mal ein Beispiel von swissdelphicenter.ch

http://www.swissdelphicenter.ch/de/showcode.php?id=921

Um es wie ICQ oder ählniches zu machen, muss den Border der Form auf bsNone setzen und viel mit Images arbeiten.

Gruß
Mazel

xaromz 6. Aug 2006 10:21

Re: Titelleiste Zeichnen
 
Hallo,
Zitat:

Zitat von Mazel
Um es wie ICQ oder ählniches zu machen, muss den Border der Form auf bsNone setzen und viel mit Images arbeiten.

Das kann ich so nicht stehen lassen. Das Windows-API stellt verschiedene Funktionen bereit, mit denen man seine eigene Titelleiste zeichnen kann. Wenn ich Zeit habe, werde ich vielleicht mal ein Tutorial dazu schreiben. Bis dahin verlinke ich auf mit PaletteForm. Der Quellcode ist zwar nicht kommentiert, aber die Vorgehensweise sollte ersichtlich sein.

Gruß
xaromz

Mazel 6. Aug 2006 11:16

Re: Titelleiste Zeichnen
 
Hi,

ok, aber damit hat er zwar seine eigene Titelleiste, mit CreateRoundRectRgn kann er dieganze Form ändern und wenn er dan mit Bilder und Farben arbeitet, kann er seinen eigenen Skin machen.

Gruß
Mazel

xaromz 6. Aug 2006 11:36

Re: Titelleiste Zeichnen
 
Hallo,
Zitat:

Zitat von Mazel
ok, aber damit hat er zwar seine eigene Titelleiste, mit CreateRoundRectRgn kann er dieganze Form ändern und wenn er dan mit Bilder und Farben arbeitet, kann er seinen eigenen Skin machen.

Das ist richtig. Man kann aber diese Methode mit Regions kombinieren. Und ein Skin mit vielen Images kann ganz schön ressourcenlastig werden.

Gruß
xaromz

vlees91 6. Aug 2006 11:37

Re: Titelleiste Zeichnen
 
hier gabs mal ne besser lösung
etwas mit einer komponente, die alles automatisch ändert
dann stellt man nur einmal nen ski ein, wie z.B. die linke ecke eines buttons aussehen soll, und alles wird automatisch beim start ersetzt

edit: es war vclskin, was aber teuer ist

Hobby-Programmierer 6. Aug 2006 12:00

Re: Titelleiste Zeichnen
 
Moin ... :)
ich vermute das Real nicht wusste das dies unter dem Begriff Skin oder Theme geführt wird, sonst hätte er sicher im Forum danach gesucht ! :mrgreen:

Zitat:

Zitat von vlees91
edit: es war vclskin, was aber teuer ist

Gibt unzählige freie Comp. sogar mit Code. Wie zb. die hier Klick oder natürlich wie immer bei Torry.

PS: Projekt wird weitergeführt unter Klick
[edit] Link ergänzt [/edit]

LG Mario

TBx 6. Aug 2006 22:21

Re: Titelleiste Zeichnen
 
so eine Komponente gibt es auch in den LMD-Tools

Man beachte dazu dieses!

Gruß

onlinekater

Real_Thunder 7. Aug 2006 00:48

Re: Titelleiste Zeichnen
 
Zitat:

Zitat von Hobby-Programmierer
Moin ... :)
ich vermute das Real nicht wusste das dies unter dem Begriff Skin oder Theme geführt wird, sonst hätte er sicher im Forum danach gesucht ! :mrgreen:

Das es unter Skin bw Theme Läuft läuft, wusste ich wirklich nicht...

Habe Halt wie wild rumgesucht.....

Habe ale Möglichkeiten (Mit den Komponenten mal ausprobiert).. da eineige Sachen aber nicht unterstützt werden, muß ich das programm ein Wenig umschreiben....

Naja genug OFFTopic gesprochen..

Danke für die Hilfe

Real_Thunder 7. Aug 2006 22:21

Re: Titelleiste Zeichnen
 
Mit den Komnenten konnte ich den Style ändern... aber habe da ein grosses Probem...

ich versuche es Mal zu schildern.


in der Hauptform habe ich volgenen Code:
Delphi-Quellcode:
 ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );

In den Anderen Formen habe ich dann Volgenes:
Delphi-Quellcode:
procedure Tmsg_haupt_form.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;

end;

Das bewirkt, das sich jedes Fenster in die Taskleiste minimiert.. Also quasi als Application Window gilt.

Klappt an sich wunderbar....
Bis ich die Style Komponenten benutze...

Also sobald ich die Benutze minimieren sich die Fenster wieder über die Startleiste....

Hat jemand eine Idee, warum das so ist ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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