Actualización
========
Hasta el momento he conseguido un bonito rectángulo con el color del borde a gusto. Voy avanzando
Código Delphi
[-]unit GroupBoxEX;
interface
uses
SysUtils, Classes, Controls, StdCtrls, Graphics;
type
TGroupBoxEX = class(TGroupBox)
private
FBorderColor: TColor;
procedure SetBorderColor(Value:TColor);
protected
procedure Paint; override;
public
constructor Create(AOwner:TComponent); override;
published
property BorderColor: TColor read FBorderColor Write SetBorderColor Default clBlack;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Personales', [TGroupBoxEX]);
end;
constructor TGroupBoxEX.Create(AOwner:TComponent);
begin
inherited;
FBorderColor:= clBlack;
end;
procedure TGroupBoxEX.SetBorderColor(Value:TColor);
begin
If FBorderColor <> Value Then
Begin
FBorderColor:= Value;
Invalidate;
End;
end;
procedure TGroupBoxEX.Paint;
var
X, Y, W, H: Integer;
begin
With Canvas Do
Begin
Pen.Width:= 1;
Pen.Color:= BorderColor;
Brush.Color:= Color;
Brush.Style:= bsSolid;
X:= Pen.Width div 2;
Y:= X;
W:= Width - Pen.Width + 1;
H:= Height - Pen.Width + 1;
FillRect(ClientRect);
Brush.Style:= bsClear;
Rectangle(X, Y, X + W, Y + H);
End;
End;
end.