Ver Mensaje Individual
  #1  
Antiguo 08-12-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Reputación: 22
AzidRain Va camino a la fama
Redondear esquinas de cualquier control

Código Delphi [-]

procedure DrawRounded(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, - 4, - 4) ;
     Perform(EM_SETRECTNP, 0, lParam(@r)) ;
     SetWindowRgn(Handle, rgn, True) ;
     Invalidate;
   end;
end;

{Ejemplo de uso}
procedure TForm1.FormCreate(Sender: TObject) ;
begin
   // rounding Panel1
   DrawRounded(Panel1) ;

   // rounding Memo1
   Memo1.BorderStyle := bsNone;
   DrawRounded(Memo1) ;

   // rounding Edit1
   Edit1.BorderStyle := bsNone;
   DrawRounded(Edit1) ;

end;
Responder Con Cita