Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Direkt auf TForm zeichnen?

  Alt 20. Jan 2009, 22:57
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
  Mit Zitat antworten Zitat