Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как создавать неквадратные формы и контроллы?

01.01.2007

Всё, что нам нужно, это HRGN и дескриптор (handle) элемента управления. SetWindowRgn имеет три параметра: дескриптор окна, которое будем менять, дескритор региона и булевый (boolean) параметр, который указывает - перерисовывать или нет после изменения. Как только у нас есть дескриптор и регион, то можно вызвать SetWindowRgn(Handle, Region, True) и вуаля!

Здесь приведён пример использования функции BitmapToRgn (описанной в примере Как создать регион(HRNG) по маске).

Заметьте, что Вы не должны освобождать регион при помощи DeleteObject, так как после вызова SetWindowRgn владельцем региона становится операционная система.

var 
 
MaskBmp: TBitmap;
begin
 
MaskBmp := TBitmap.Create;
 
try
   
MaskBmp.LoadFromFile('FormShape.bmp');
   
Height := MaskBmp.Height;
   
Width := MaskBmp.Width;
   
// ОС владеет регионом, после вызова SetWindowRgn
   
SetWindowRgn(Self.Handle, BitmapToRgn(MaskBmp), True);
 
finally
   
MaskBmp.Free;
 
end;
end;

Взято из https://forum.sources.ru