好きな形のフォーム

好きな形のリージョンをつくり、それをフォームに適応させればいいわけですが、リージョン作るのめんどくさい! そこで、図形を描いて(パス)、それをリージョンに変換するという方法をとります。 ですので、TextOutなどを使えば「あ」という形のフォームなんかもできます。

好きな形のフォーム

procedure TfrmMain.FormCreate(Sender: TObject);
var 
  niniRgn:HRgn;	        //リージョンを宣言
begin
  //図形をかく(パス)
  BeginPath(imgMain.Canvas.Handle);
    imgMain.canvas.PenPos := Point(0,0);
    imgMain.canvas.LineTo(50, 0);
    imgMain.Canvas.LineTo(50, 50);
    imgMain.canvas.LineTo(100, 50);
    imgMain.Canvas.LineTo(100, 100);
    imgMain.canvas.LineTo(50, 100);
    imgMain.Canvas.LineTo(0, 0);
  EndPath(imgMain.Canvas.Handle);
  //パスをリージョンに変換
  niniRgn ;= PathToRegion(imgMain.Canvas.Handle);
  //リージョンをセット
  setWindowRgn(frmMain.Handle, niniRgn, true);
end;

戻る