Как создать форму с закругленными углами

Функция CreateRoundRectRgn создает прямоугольную область с закругленными углами.
Поместите следующий код в событие OnCreate формы:
procedure TForm1.FormCreate(Sender: TObject);
var
rgn: HRGN;
begin
Form1.Borderstyle := bsNone;
rgn := CreateRoundRectRgn(0,// x-координата левого верхнего угла региона
0, // y-координата левого верхнего угла региона
ClientWidth, // x-координата нижнего правого угла региона
ClientHeight, // y-координата нижнего правого угла региона
40, // высота эллипса закругленного угла
40); // ширина эллипса загругленного угла
SetWindowRgn(Handle, rgn, True);
end;
Функция CreatePolygonRgn создает полигон.
Результат выполнения:

Код для выполнения этого примера:
procedure TForm1.FormCreate(Sender: TObject);
const
C = 20;
var
Points: array [0..7] of TPoint;
h, w: Integer;
begin
h := Form1.Height;
w := Form1.Width;
Points[0].X := C; Points[0].Y := 0;
Points[1].X := 0; Points[1].Y := C;
Points[2].X := 0; Points[2].Y := h - c;
Points[3].X := C; Points[3].Y := h;
Points[4].X := w - c; Points[4].Y := h;
Points[5].X := w; Points[5].Y := h - c;
Points[6].X := w; Points[6].Y := C;
Points[7].X := w - C; Points[7].Y := 0;
SetWindowRgn(Form1.Handle, CreatePolygonRgn(
Points, 8, WINDING), True);
end;
Комментарии