...Controls mit abgerundeten Ecken zeigen?

Autor: P. Below
Homepage: http://www.teamb.com

Kategorie: VCL

procedure MakeRounded(Control: TWinControl);
var
  
R: TRect;
  Rgn: HRGN;
begin
  with 
Control do
  begin
    
R := ClientRect;
    rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20);
    Perform(EM_GETRECT, 0, lParam(@r));
    InflateRect(r, - 5, - 5);
    Perform(EM_SETRECTNP, 0, lParam(@r));
    SetWindowRgn(Handle, rgn, True);
    Invalidate;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  
// TMemo:
  
Memo1.BorderStyle := bsNone;
  MakeRounded(Memo1);
  // TEdit:
  
Edit2.BorderStyle := bsNone;
  MakeRounded(Edit2);
  // TPanel:
  
MakeRounded(Panel1);
  // TStaticText:
  
MakeRounded(StaticText1);
  // TForm
  
Form1.BorderStyle := bsNone;
  MakeRounded(Form1);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base