Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Программа и Интерфейс , Формы

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  Die CreateRoundRectRgn lasst eine Form mit abgerundeten Ecken erscheinen. 

  The CreateRoundRectRgn function creates a rectangular 
  region with rounded corners 
}

 procedure TForm1.FormCreate(Sender: TObject);
 var
   rgn: HRGN;
 begin
   Form1.Borderstyle := bsNone;
   rgn := CreateRoundRectRgn(0,// x-coordinate of the region's upper-left corner 
    0,            // y-coordinate of the region's upper-left corner 
    ClientWidth,  // x-coordinate of the region's lower-right corner 
    ClientHeight, // y-coordinate of the region's lower-right corner 
    40,           // height of ellipse for rounded corners 
    40);          // width of ellipse for rounded corners 
  SetWindowRgn(Handle, rgn, True);
 end


 { The CreatePolygonRgn function creates a polygonal region. }


 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;

Программный пример на Delphi, который создает форму с закругленными углами с помощью функций CreateRoundRectRgn и SetWindowRgn.

Вот шаг за шагом, как это работает:

  1. В обработчике события FormCreate, свойство Borderstyle формы устанавливается в bsNone, что эффективно удаляет стандартный рамок.
  2. Функция CreateRoundRectRgn используется для создания региона с закругленными углами. Эта функция принимает пять параметров:
    • x и y: координаты верхнего левого угла региона.
    • nRight и nBottom: координаты нижнего правого угла региона.
    • wEllipse и hEllipse: ширина и высота эллипса, используемого для создания закругленных углов. Большее значение этих параметров означает более изогнутые углы.
  3. В этом случае регион создается с верхним левым углом в (0, 0), нижним правым углом в (ClientWidth, ClientHeight) и размером эллипса 40x40 пикселей.
  4. Функция SetWindowRgn используется для установки региона окна формы на созданный ранее круглый прямоугольник.

Второй пример использует функцию CreatePolygonRgn для создания полигонального региона с закругленными углами. Вот как это работает:

  1. Массив структур TPoint объявляется, который будет содержать координаты точек, образующих полигон.
  2. Константа C определяется как 20, что determines размер закругленных углов.
  3. Точки вычисляются для создания полигона с закругленными углами. Точки следующие:
    • (C, 0): верхний левый угол
    • (0, C): верхний правый угол
    • (0, h-C): нижний левый угол
    • (C, h): нижний правый угол
    • (w-C, h): верхний правый угол противоположной стороны
    • (w, h-C): нижний правый угол
    • (w, C): верхний правый угол противоположной стороны
    • (w-C, 0): нижний левый угол
  4. Функция CreatePolygonRgn используется для создания полигонального региона из массива точек.
  5. Наконец, функция SetWindowRgn используется для установки региона окна формы на созданный ранее полигональный регион.

В обоих примерах форма имеет закругленные углы и нет рамки.

В статье описывается создание форм с закругленными краями в Delphi, используя функции CreateRoundRectRgn и CreatePolygonRgn для отрисовки регионов с округленными углами.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Формы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-11-30 11:42:55
2024-12-10 23:20:34/0.0039551258087158/1