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 Farbigen Rand um Form zeichnen (https://www.delphipraxis.net/144687-farbigen-rand-um-form-zeichnen.html)

renekr 14. Dez 2009 14:54


Farbigen Rand um Form zeichnen
 
Hallo,

Ich habe eine Form mit borderstyle = none.
So nun habe ich der Form auch noch Runde Ecken gemacht und würde nun gerne auch noch eine Farbige Linie um die Form zeichnen.
Nur macht er um die Ecke keine Farbe hin und auch unten und rechts nicht wenn ich die Ecken gerundet habe.

Code fürs Farbig machen.
Farbigen Rand

Code zum Runden:

Delphi-Quellcode:
procedure TForm1.Make_Form_Round;
var
  rgn: HRGN;
begin
//  Form1.Borderstyle := bsNone;
  rgn := CreateRoundRectRgn(0,// x-coordinate of the region's upper-left corner
    0,           // y-coordinate of the region's upper-left corner
    ClientWidth, // x-coordinate of the region's lower-right corner
    ClientHeight, // y-coordinate of the region's lower-right corner
    30,          // height of ellipse for rounded corners
    30);         // width of ellipse for rounded corners
  SetWindowRgn(Handle, rgn, True);
end;
Kann mir ev. jemand einen Tipp geben ?

Vielen Dank.

patti 14. Dez 2009 15:02

Re: Farbigen Rand um Form zeichnen
 
Evtl. kannst du in den Hintergrund deines Formulars eine Paintbox legen und bei deren OnPaint-Ereignis einfach den Rahmen zeichnen. Das Stichwort "RoundRect" sollte dir da schonmal weiterhelfen ;-)

MFG

Helmi 14. Dez 2009 15:03

Re: Farbigen Rand um Form zeichnen
 
Hallo,

ich hab auch mal eine Form mit gerundeten Ecken gebaut und ebenfalls auch mit einem farbigen Rand.

Ich hab das damals so gelöst:

Delphi-Quellcode:
procedure TMainForm.FormPaint(Sender: TObject);
const
  Pen_Width = 2;
  Round_C  = 20;
begin
  with MainForm.Canvas do
    begin
      // Rahmen um die Form aufbauen
      Pen.Width := Pen_Width;
      Pen.Color := clBlack;
      Pen.Style := psInsideFrame;
      RoundRect(0, 0, Width - Pen_Width, Height - Pen_Width, Round_C, Round_C);
    end;
end;

patti 14. Dez 2009 15:10

Re: Farbigen Rand um Form zeichnen
 
Das entspricht in etwa meinem Vorschlag, nur dass ich das ganze auf eine extra PaintBox machen würde.

renekr 15. Dez 2009 12:31

Re: Farbigen Rand um Form zeichnen
 
Hi Helmi,

Vielen Dank.
Binfrüher nicht dazu gekommen.
Aber habs so hinbekommen.

Danke


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