Discussion:
Panel mit schwarzem Rand?
(zu alt für eine Antwort)
Matthias Frey
2014-06-30 08:28:08 UTC
Permalink
Hallo,

ich brauche hier einen Kasten mit einem schwarzen Rahmen in das
ich andere Controls setzen kann. Dazu versuchte ich ein Panel
zu nehmen - allerdings ist der Rahmen nicht schwarz sondern grau.
Was kann ich tun?

Hier das Panel:

object Panel1: TPanel
Left = 112
Top = 32
Width = 66
Height = 22
BevelOuter = bvNone
BorderStyle = bsSingle
Color = clWhite
Ctl3D = False
ParentBackground = False
ParentCtl3D = False
TabOrder = 0
end

Matthias
Hans-Peter Diettrich
2014-06-30 10:13:11 UTC
Permalink
Post by Matthias Frey
ich brauche hier einen Kasten mit einem schwarzen Rahmen in das
ich andere Controls setzen kann. Dazu versuchte ich ein Panel
zu nehmen - allerdings ist der Rahmen nicht schwarz sondern grau.
Was kann ich tun?
Du kannst in den VCL Quelltext schauen und herausfinden, wo der Rahmen
gezeichnet wird. Das könnte z.B. bei WM_ERASEBKGND stattfinden, oder bei
WM_NCPAINT.

In XE scheint TCustomPanel.Paint auch den Rand zu zeichnen. So wie
dieser Code aussieht, müßte er wohl per Copy/Paste in eine eigene
Panel-Klasse übernommen werden, und dort dann die Farben
(Top/BottomColor) überschrieben werden.

DoDi
Matthias Eißing
2014-06-30 12:47:37 UTC
Permalink
Post by Matthias Frey
Was kann ich tun?
TShape.shape := stRectangle

Brush.style := bsClear
Pen.Color := clBlack
Pen.Width := 12
--
cu://Matthias.Eißing.de
Matthias Frey
2014-06-30 13:24:18 UTC
Permalink
Post by Matthias Eißing
Post by Matthias Frey
Was kann ich tun?
TShape.shape := stRectangle
Brush.style := bsClear
Pen.Color := clBlack
Pen.Width := 12
Pen.Width := 1 reicht ;-)

Und das TShape dann hiner das Panel legen und das Panel dann je
ein Pixel kleiner machen? Wäre eine Notlösung.

Matthias
Matthias Eißing
2014-06-30 13:36:28 UTC
Permalink
Post by Matthias Frey
Und das TShape dann hiner das Panel legen und das Panel dann je
ein Pixel kleiner machen?
Panel wegschmeißen.... braucht man dann nicht :-)
--
cu://Matthias.Eißing.de
Hans-Peter Diettrich
2014-06-30 14:05:26 UTC
Permalink
Post by Matthias Eißing
Post by Matthias Frey
Und das TShape dann hiner das Panel legen und das Panel dann je
ein Pixel kleiner machen?
Panel wegschmeißen.... braucht man dann nicht :-)
Achtung: Ein TShape (TGraphicControl) ist im Gegensatz zu TPanel kein
Container (TWinControl), in den man weitere Komponenten legen kann.

DoDi
Matthias Eißing
2014-06-30 14:13:15 UTC
Permalink
Post by Hans-Peter Diettrich
Achtung: Ein TShape (TGraphicControl) ist im Gegensatz zu TPanel kein
Container (TWinControl), in den man weitere Komponenten legen kann.
Oh. Das habe ich wohl überlesen/anders interpretiert ("in das
ich andere Controls setzen kann")....

Dann braucht man beides: Panel und Shape...
--
cu://Matthias.Eißing.de
Loading...