Окно произвольной формы
Код, приведенный ниже позволяет сделать форму круглой, без заголовка и  границ.
 
- Создайте новое приложение.
 - Перепишите метод формы createparams как показано ниже.
 - Разместите на форме какое-либо изображение и присвойте свойству transparent значение True.
 - Установите "скоростную :-)" кнопку (SpeedButton) на форме и создайте метод, закрывающий приложение. (Форма получится круглой, поэтому системные кнопки и системное меню будет недоступно, они останутся за пределами контура формы.)
 - Создайте метод, показанный ниже, отвечающий за обработку события OnCreate.
 
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,  Dialogs,
 ExtCtrls, Buttons;
typeTForm1 = class(TForm)
 Image1: TImage;
 SpeedButton1: TSpeedButton;
 procedure FormCreate(Sender: TObject);
 procedure SpeedButton1Click(Sender: TObject);
 private
 { Private declarations }
 procedure CreateParams(var Params: TCreateParams);  override;
 public
 { Public declarations }
 end;
varForm1: TForm1;
implementationprocedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited createparams(params);
{Здесь убираем у формы заголовки и границы}
params.style:=params.style or ws_popup xor ws_dlgframe;
end;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var begin
{очищаем форму}
form1.brush.style:=bsclear;
{делаем форму круглой}
GetWindowRgn(form1.Handle, formRgn);
DeleteObject(formRgn);
 formrgn:=
 CreateroundRectRgn(0,
0,form1.width,form1.width,form1.width,form1.width);SetWindowRgn(form1.Handle, formrgn,  TRUE);
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
form1.close;
end;
end.
