掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
生成したTPaintBoxに線を描画するには? (ID:20569)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
「やれやれ」さん、ご指導ありがとうございます! しっかり描画&再表示されました。期待通りの振る舞いになりました。 a)描画対象の指定 b)描画方法の問題(初回と再描画時とで始点が異なる) が複合していたことがわかりました。 思い込みの部分が多く、ひとりで悩んでいてもきっと気づかなかったと思います。 みなさんにご指摘&ご指導いただけたおかげです。 特に実際に動くコードで確認できるので、スムーズに検討できました。 ありがとうございます。 以下に、まとめておきます。 ---------- //「やれやれ」さんのコード PaintBox1.Canvas.MoveTo(0,0); //PaintBoxに描画される PaintBox1.Canvas.LineTo(100,100); //再描画もOK //PaintBoxを指定しない場合の動作 Canvas.MoveTo(0,0); //Formに描画される Canvas.LineTo(100,100); //再描画もOK //「デル太」のコードの問題点を整理:1)PaintBoxを指定していなかった ↓下の1行は不要だった PaintBox1.Update; //←現象はUpdateを入れても変わらない Canvas.MoveTo(0,0); //3)これがないと再描画される際に100,100にから描画される Canvas.LineTo(100,100); // だから移動量がないので*表示されない* //今回の根本的な問題は3)だった ---------- それでも少し疑問が残ってしまいました。お付き合いいただけますか? 今回のケースで対象を省略した場合、フォームが対象になることがわかりました PaintBoxで発生したイベントなので、デフォルトでPaintBoxが対象になると勝手な想像をしていましたが、ここが間違いなんですね? 疑問1: 対象を省略した場合、すべてフォームになるのでしょうか? 疑問2: もしかすると、イベントが発生した際に実行するコードというのは、イベントが起きたオブジェクトとは無関係(オブジェクトの外部にある)と考えるべきなのですか? そういえば「複数のオブジェクトでイベントを共有する」こともできると聞きます。 違う種類のオブジェクトでの共有ではデフォルトなんて考えにくいですものね・・。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.