掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TImageのようにオブジェクト別にクリックを取得でき、透明な背景に線を引けるクラスは? (ID:20688)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いろんなやり方が出てますね。 おもしろそうなので、 他のやり方も紹介させてください。 判定処理を図形ごとに持たせたいのであれば、 Win32のリージョンAPIを使って、Delphiのコンポーネントを 変形させる、というやり方もあるかもしれません。これも参考に してみてください。 例 //(PanelとMamoを用意) procedure TForm1.FormCreate(Sender: TObject); var rgn: HRGN; begin rgn := CreateEllipticRgn(5,5,Panel1.Width-5,Panel1.Height-5); Panel1.Color := clRed; SetWindowRgn(Panel1.Handle, rgn, true); DeleteObject(rgn); end; //マウスが入ればMemoに出力 procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Memo1.Lines.Add('Enter'); end; ただし、TImageには使えないので、代わりにTPanelを 使ってみました。 なので、本格的にTPanelに描画するなら、 Win32APIのGetDCなどで、デバイスコンテキストを所得して、 TPanelに描画するやり方になります。 リージョンはかなり複雑な図形も作ろうと思えば、 できます。詳しくはWin32APIのサイトなどを参考にしてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.