Hola kaua77.
Si como dice el título de tu mensaje deseas las ("esquinas ovaladas") podes hacer:
Código PHP:
void roundCtrl( TWinControl* wc ) {
TRect rct = wc->ClientRect;
HRGN rgn = CreateRoundRectRgn( rct.left, rct.top, rct.right,
rct.bottom, 25, 25 );
SendMessage( wc->Handle, EM_GETRECT, 0, (LPARAM)&rct );
InflateRect( &rct, -5, -5 );
SendMessage (wc->Handle, EM_SETRECTNP, 0, (LPARAM)&rct );
SetWindowRgn( wc->Handle, rgn, true );
wc->Invalidate();
}
Ejemplo de uso:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender) {
roundCtrl(Button1);
roundCtrl(Memo1);
... etc
}
Ahora, como dice el texto de tu mensaje: "sus cuatro lados ovalados" (como si estuviese inflado), vas a tener que hacer lo que te sugiere
kapcomx.
Si por otro lado desearas darle forma elíptica:
Código PHP:
void ellipticalCtrl(TWinControl* wc) {
HRGN rgn;
rgn = CreateEllipticRgn(2, 2, wc->Width - 2, wc->Height - 2);
SetWindowRgn(wc->Handle, rgn, true);
}
Ejemplo de uso:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ellipticalCtrl(Button1); // form->color <> clBtnFace
ellipticalCtrl(Memo1);
... etc
}
En este último caso y tratándose de un
TButton que no posee la propiedad
Color, servirá solo si el form es de otro color ya que si el color del form es clBtnFace al desaparecer sus bordes sólo se verá la leyenda (
Caption) del botón.
Saludos