Эллипсовидное окно
Для начала нужно обеспечить возможность пользователю перемещать окно, хватаясь за клиентскую область, а не за заголовочную, т.к. полосы заголовка, собственно, у нас нет.
Сначала в частных объявлениях (после слова 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;
|
|