Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Эллипсовидное окно

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

Сначала в частных объявлениях (после слова 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;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay