Эллипсовидное окно

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Для начала нужно обеспечить возможность пользователю перемещать окно, хватаясь за клиентскую область, а не за заголовочную, т.к. полосы заголовка, собственно, у нас нет.

Сначала в частных объявлениях (после слова private) объявляем процедуру:

private

procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;

Затем в разделе implementation описываем её так:

implementation

{$R *.DFM}

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);

begin

inherited;

if M.Result = htClient then

M.Result := htCaption;

end;

Далее самое главное. По созданию окна (событие OnCreate) пишем следующий код:

procedure TForm1.FormCreate(Sender: TObject);

var

hsWindowRegion: Integer;

begin

hsWindowRegion := CreateEllipticRgn(50, 50, 350, 200);

SetWindowRgn(Handle, hsWindowRegion, true);

end;

{/codecitation}

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