Hallo Tobias,
du könntest auch ein
TShape hinter das Control legen. Lege ein TShape mit Namen "Shape" auf das Formular und stelle in dessen Eigenschaft
Pen die gewünschte Rahmenfarbe und -dicke ein. Die Eigenschaft
Visible stellst du auf den Wert
False. Mit der folgenden Methode kannst du dann den "Rahmen" für beliebige Controls auf dem Formular ein- und ausschalten.
Delphi-Quellcode:
procedure TForm1.FrameControl(aControl: TControl; aEnable: Boolean);
begin
if aEnable then
begin
Shape.SetBounds(aControl.Left - Shape.Pen.Width,
aControl.Top - Shape.Pen.Width,
aControl.Width + 2 * Shape.Pen.Width,
aControl.Height + 2 * Shape.Pen.Width);
Shape.SendToBack;
end;
Shape.Visible := aEnable;
end;
// Beispiel-Aufruf:
FrameControl (Edit1, True);
In der vorgestellten Form wird allerdings nur ein Rahmen verwaltet. Benötigst du mehrere gleichzeitig, musst du die Routine entsprechend erweitern.
Gruß Hawkeye