丸いウィンドウを作るには
アナログ時計などを作るときなどのように、丸いウィンドウが必要になることがあります。一般にリージョン(Region)を使うと、長方形以外のウィンドウを作ることができます。
Delphiでは、リージョンを扱うコンポーネントは用意されていないので、Win32 APIを直接使うことになります。丸いウィンドウの場合、CreateEllipticRgnとSetWindowRgnを使います。丸いウィンドウの元となるフォームは、オブジェクトインスペクタで、BorderStyleをbsNoneにしてタイトルバーを削除しておきます。また、バックとなるビットマップなどをImageコンポーネントを使って貼り付けておくとよいでしょう。次の例は、OnShowイベントで丸いウィンドウを作るコードです。
例
procedure TForm2.FormShow(Sender: TObject);
var
hRgn: Integer;
begin
hRgn := CreateEllipticRgn(0, 0, 100, 100);
SetWindowRgn(Handle, hRgn, True);
end;