掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TImageのようにオブジェクト別にクリックを取得でき、透明な背景に線を引けるクラスは? (ID:20683)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えーとさん、いつもありがとうございます! > 要は、自分が描画したいときに保持しているデータで自分を描画出来れば、 TImageを継承したクラスから生成したオブジェクトで実現中なのですが、TLineを参考に、自分に描画位置を保持させています。 > あとは、それを複数管理する「神の目」であるプログラマのコードで十分なのでは? はい、ZukeiListを参考に、描画種類別ですが、ComponentListが各オブジェクトを管理しています。 まさに、ご指摘どおりに構築を進めている感じです。 なのに、ひとつわからない点があり、そのために難しいことをしているようです。 > 最初にしめした TZukei クラスの派生クラス プラス TPaintBox 一つ、プラス > TObjectList 一つでなんでも出来るような気がします。 はい、この形でできれば、とてもシンプルになりそうですね。 右クリックメニューを実装するにも1つのPaintBoxに関連付けるだけで済むなど、メリットは大きいと感じます。 > OnClick なんかはPaintBox がすべて受け取って、 > その座標から管理しているオブジェクトが簡単に分かりますし、 ご指摘ありがとうございます。 この部分が理解できていない点と気づきました。 具体的なイメージがわかずにおります。 TLineは直線を表示するクラスですね。 なので、プロパティにやメンバにWidthやHeightを持たない=矩形領域がないオブジェクトが生成されますよね? そうすると「オブジェクトLine1が描画した線をがクリックされたとき、Line1と特定できる」とおっしゃているように読み取りました。 そうなんです。これができるのが一番理想なのです! どうやると、実現できるのでしょうか? ご指導いただけますでしょうか? 1)PaintBoxがクリックを受け取る 2)「その座標を描画したオブジェクト」を見つける という流れなのかな? 2)は直線の方程式や楕円の方程式から求めることになりますか? 2)を分割すると、次のようにイメージできました。 2-1)各オブジェクトに自分の描いた図形に該当するか判定するメソッドを持たせる 2-2)神の目が、各オブジェクトに座標で問い合わせる 2-3)該当するオブジェクトが私が書いたよ!と手を挙げる(Trueを返すなど) 2-3)の中で方程式を使うのかな? 方程式なら楕円の描画線に限る場合と領域内を含む場合とどちらも対応できそうですね。 この形で考えてみたらだんだんイメージが湧いてきました! クリックした箇所の図形が重なっている場合、複数のオブジェクトが手を挙げるのでそれにも対応できますね。 一番上(最後に描画した図形)だけを扱いたいなら、ComponentListの登録順に処理しますから、最後に手を挙げた図形だけを扱えばいいですね。 こんな感じのイメージで正しいでしょうか? また、ご迷惑でなければ、方程式で座標を判定する方法について一例を教えていただけると嬉しいです。 どうぞ、お力添えをよろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.