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

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

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

Code:

{
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;

Автор: winsoft

Взято из http://forum.sources.ru

Это фрагмент кода на языке Delphi, демонстрирующий создание форм с закругленными углами двумя разными методами:

  1. Используя функцию CreateRoundRectRgn, которая создает прямоугольную область с закругленными углами.
  2. Используя функцию CreatePolygonRgn, которая создает полигональную область.

Вот подробное описание кода:

Метод 1: Использование CreateRoundRectRgn

В этом примере форма создается с стилем границы bsNone, что significa, что вокруг формы не будет рисоваться граница. Затем функция CreateRoundRectRgn вызывается для создания прямоугольной области с закругленными углами.

Функция принимает шесть параметров: * Координата x верхнего левого угла области * Координата y верхнего левого угла области * Координата x нижнего правого угла области * Координата y нижнего правого угла области * Высота эллипса для закругленных углов * Ширина эллипса для закругленных углов

В этом случае параметры устанавливаются для создания формы размером равным ее клиентской зоне (т.е., области внутри границы), а радиус закругленных углов составляет 40 пикселей.

Полученная область затем присваивается форме с помощью SetWindowRgn.

Метод 2: Использование CreatePolygonRgn

В этом примере массив структур TPoint определяется для представления точек, которые составляют полигональную область. Точки рассчитываются на основе размера формы и константы C, которая представляет радиус закругленных углов.

Функция CreatePolygonRgn затем вызывается с параметрами: * Массив точек * Количество точек (в этом случае 8) * Флаг, указывающий, использовать ли правило обхода или необхода для заливки области

В этом случае флаг установлен в WINDING, что significa, что область будет заливаться с помощью правила обхода.

Полученная область затем присваивается форме с помощью SetWindowRgn.

Обратите внимание, что в обоих примерах обработчик события FormCreate используется для создания закругленных углов. Это событие вызывается при создании или изменении размера формы.

В целом, эти кодовые фрагменты демонстрируют, как создавать формы с закругленными углами с помощью встроенных функций Delphi для создания областей.

Создание форм с закругленными краями в Delphi через функцию CreateRoundRectRgn или CreatePolygonRgn.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 05:36:27/0.0033860206604004/0