Главная |
Delphi |
WinAPI
Создание непрямоугольных формЭтот простой код показывает, как создавать заказные формы. Создавая простые Регионы и объединяя их в сложные Регионы, Вы можете придать вашей форме любую форму, какую Вы хотите. Код, чтобы сделать овальную форму (используйте alt+F4, чтобы закрыть) procedure TForm1.FormCreate(Sender: TObject); var hRgn: THandle; begin // Создаем овальный регион на 10 pixels меньше, чем форма hRgn := CreateEllipticRgn(10, 10, Width - 20, Height - 20); // устанавливаем новый регион SetWindowRgn(Handle, hRgn, False); end; // Код для создания формы с отверстием procedure TForm1.FormCreate(Sender: TObject); var hRgn1, hRgn2: THandle; begin // Создадим прямоугольную область с тем же самым размером как форма hRgn1 := CreateRectRgn(0, 0, Width, Height); // Создаем круглый регион 100 x 100 в центре формы hRgn2 := CreateEllipticRgn((Width div 2) - 50, (Height div 2) - 50, (Width div 2) + 50, (Height div 2) + 50); // Объединим регионы, вычитая регион окружности // из прямоугольного региона CombineRgn(hRgn1, hRgn1, hRgn2, RGN_DIFF); // установим новый регион SetWindowRgn(Handle, hRgn1, False); // удаляем область 2, область 1 DeleteObject(hRgn2); end; По материалам http://delphi.3000.com |
|
||
Copyright (c) Авраменко С. Н. 2008. |