Как создать круглую форму на Delphi

Опубиковано: 15.07.2008 г., автор: , просмотров: 58032

Создаем круглую форму на Delphi

Сегодня я хочу показать вам как вы с легкостью можете создать, форму нестандартного вида, например круглую.
Открываем Delphi и создаем новый проект, после ключевого слова private дописываем

procedure CreateParams(var Params: TCreateParams); override;

Жмем комбинацию клавиш Ctrl+Shift+C

Delphi генерирует пустую процедуру.
Посмотрите что получилось у меня и пропишите то что не хватает у вас.

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ws_popup xor ws_dlgframe;
end;

Двигаемся дальше и создаем обработчик событий OnCreate на форме, прописываем там следующий код.

Полный листинг процедуры OnCreate:

procedure TForm1.FormCreate(Sender: TObject);
var
FormRgn: hRgn;
begin
Form1.Brush.Style := bsSolid; //bsclear;
GetWindowRgn(Form1.Handle, FormRgn);
DeleteObject(FormRgn);
Form1.Height := 500;
Form1.Width := Form1.Height;
FormRgn := CreateRoundRectRgn(1, 1, Form1.Width - 1,
Form1.height - 1, Form1.width, Form1.height);
SetWindowRgn(Form1.Handle, FormRgn, TRUE);
end;

Вот и все запускайте проект и наслаждайтесь результатом.

До встречи www.delphiexpert.ru

P.S не забываем подписываться на бесплатную мультимедийную рассылку. Форма для подписки расположена с права и с лева.



Похожие материалы

Последние из рубрики

виталий 12 Feb 2010 в 00:00 #
отличный пример.
DRago_Angel [inV@DER] 28 Jan 2010 в 00:00 #
Лично я у меня времени мало лишнего и я вам посоветую просто напросто форму делать например clFuchsia и прозначнесть для нее ставить такую же! А вид формы рисовать в Paint.Net или фотошоп и там где хотите что бы форма была прозрачна рисуете "чистым розовым" *(кто знает что такое принт скрин, пипетка и умеет роботать со слоями и выделениями тому очень повезло) могу подсказать че ICQ214978500
Игорь 22 Jan 2010 в 00:00 #
До этого я сделал шарик по видеоуроку который можно таскать по форме и кидать, сейчас я переделал немного:
Вместо компонента Shape я поставил Panel и на неё image
набросил.В имэйг я вставил картинку батскетбольно мяча и панель сделал круглой.
Получилось прикольно
Алексей 10 Jan 2010 в 00:00 #
Спасибо огромное! Порадовало
SerhioLi 30 Dec 2009 в 00:00 #
А можно еще и так:
1. Создать на форме любую фигуру геометрическую(Shape).
2. в свойствах формы сделать
Color:= clWhite
TransparentColorValue:= clWhite;
TransparentColor:= true;

ОтменитьДобавить комментарий