Создание окна произвольной формы
Для создания окна произвольной формы необходимо воспользоваться функциями управления регионами Windows. Регион (region) - область окна, отображаемая при прорисовке. Область, находящаяся вне границы региона, не прорисовывается, остается прозрачной и не реагирует на события мыши. Форму региона можно определить как результат логических операций примитивных регионов, которые могут быть прямоугольником, прямоугольником со скругленными углами, эллипсом или многоугольником, определяемым набором вершин. Сочетание посредством различных логических операций этих примитивных форм позволяет создать геометрическую фигуру практически любой сложности. В WinAPI есть также средства, позволяющие определять принадлежность точки к региону. Ниже приведен пример создания региона, состоящего из объединения эллипса и прямоугольника.
procedure TfrmMain.WMNCHITTEST(var Msg: TMessage);
begin
  // Это нужно для перемещения формы без заголовка.
  // Возврат значения HTCAPTION при любом нажатии
  // мыши заставляет Windows думать, что это нажатие
  // произведено в области заголовка и поступать
  // соответственно - перемещать окно.
  Msg.Result:=HTCAPTION;
end;

procedure TfrmMain.btnEffectClick(Sender: TObject);
var
  Rgn1,Rgn2: HRGN;
begin
  // Главные события происходят здесь.
  // shpXXX - компоненты TShape.
  // Создаем эллиптический регион по размерам shpEllipse.
  with shpEllipse do
    Rgn1:=CreateEllipticRgn(Left,Top,Left+Width,Top+Height);
  // Создаем прямоугольный регион по размерам shpRect.
  // Можно было обойтись только переменной Rgn1, но в целях
  // наглядности и единообразия я объявил Rgn2.
  with shpRect do
    Rgn2:=CreateRectRgn(Left,Top,Left+Width,Top+Height);
  // Объединяем регионы по операции OR и, если это прошло
  // без ошибок, устанавливаем получившийся регион для
  // главного окна приложения. True указывает на
  // необходимость перерисовки окна.
  if CombineRgn(Rgn1,Rgn1,Rgn2,RGN_OR)<>ERROR then
    SetWindowRgn(Handle,Rgn1,True);
  // В итоге к нас отображаются только области,
  // перекрытые shpEllipse и shpRect. Посмотреть это
  // можно, загрузив и скомпилировав пример.
end;

procedure TfrmMain.btnNormClick(Sender: TObject);
begin
  // Делаем окно обычным.
  SetWindowRgn(Handle,0,True);
end;