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 keine Titelzeile, aber Umrandungsfarbe (https://www.delphipraxis.net/26165-keine-titelzeile-aber-umrandungsfarbe.html)

Sunlight 19. Jul 2004 15:28


keine Titelzeile, aber Umrandungsfarbe
 
Hallo zusammen,

ich möchte ein Form generieren, welches keine Titelzeile besitzt, aber bei der ich die Farbe der Umrandung selber setzten kann.

Ich habe schon Code für das Ausblenden der Titelzeile gefunden:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
Var
 Save : LongInt;
Begin
 If BorderStyle=bsNone then Exit;
 Save:=GetWindowLong(Handle,gwl_Style);
 If (Save and ws_Caption)=ws_Caption then Begin
   Case BorderStyle of
     bsSingle,
     bsSizeable : SetWindowLong(Handle,gwl_Style,Save and
       (Not(ws_Caption)) or ws_border);
     bsDialog : SetWindowLong(Handle,gwl_Style,Save and
       (Not(ws_Caption)) or ds_modalframe or ws_dlgframe);
   End;
   Height:=Height-getSystemMetrics(sm_cyCaption);
   Refresh;
 End;
end;
aber gibt es auch die Möglichkeit die Umrandungsfarbe für das ganze Form zu setzen ? oder muss man selber zeichnen :roll:

Gruß Hans

Robert Marquardt 19. Jul 2004 15:35

Re: keine Titelzeile, aber Umrandungsfarbe
 
Mach dir doch eine Komponente, die du von TCustomForm ableitest.
Das TCustom-Prefix bedeutet das alle Properties noch protected sind und du selbst aussuchen kannst welche
du in der published Sektion zugreifbar machen willst.
In der abgeleiteten Komponente setzt du BorderStyle := bsNone und veroeffentlichst BorderStyle nicht.
Den Rand malst du am besten selbst. Das erlaubt dir mehr Flexibilitaet. Zugehoerige Properties fuehrst du selber ein.

Ich habe auf diese Weise ine sehr interessante Dialog-Komponente geschrieben.

Ultimator 19. Jul 2004 15:36

Re: keine Titelzeile, aber Umrandungsfarbe
 
Hmmm, also ich würde das so machen:
1.)BorderStyle auf BsNone
2.)
Delphi-Quellcode:
Form1.Canvas.Rectangle(0,0,Form1.Clientheight-1,Form1.ClientWidth-1);
Und da dann halt noch die Farbe des Canvas auswählen

Jörn 19. Jul 2004 17:26

Re: keine Titelzeile, aber Umrandungsfarbe
 
Zitat:

Zitat von Ultimator
Hmmm, also ich würde das so machen:
1.)BorderStyle auf BsNone
2.)
Delphi-Quellcode:
Form1.Canvas.Rectangle(0,0,Form1.Clientheight-1,Form1.ClientWidth-1);
Und da dann halt noch die Farbe des Canvas auswählen

Der Code muss aber unbegingt ins OnPaint!!

Ultimator 19. Jul 2004 17:35

Re: keine Titelzeile, aber Umrandungsfarbe
 
Kann ich ja nicht riechen ;-)

Sunlight 19. Jul 2004 18:17

Re: keine Titelzeile, aber Umrandungsfarbe
 
Dank an alle
klappt wunderbar :mrgreen:

Pseudemys Nelsoni 19. Jul 2004 18:20

Re: keine Titelzeile, aber Umrandungsfarbe
 
kannst ansonsten auch n panel auf die form packen (1pixel abstand zum rand)


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