DelphiXE3・FireMonkey(FMX)で
俺は本当にCADモドキを作る事が出来るのか?ネタ

ラバーバンド(仮表示線)の続き

20150108a
というふうに、TImage コンポーネントの子になるように、TPath コンポーネントを配置し、位置・大きさを Image と同じにする。Path1 の位置 Position 値と、大きさ Width・Height 値を マウス位置や機能内容に応じて変えるっていうのは非常に面倒臭いため。
で、Path1 の HitTest プロパティを False にして(でないと Image がマウスイベント処理出来ないので)、WrapMode を ストレッチではなくオリジナルにする。でないと座標値指定にマウス座標をそのまま利用出来ないから。

ボタンに応じて、線、四角、円、のラバーバンドなテストをしてみた。

20150108b
          ↓
20150108c
          ↓
20150108d
          ↓
20150108e
          ↓
20150108f
          ↓
20150108g

なんかビミョーに位置がずれるような気がするけど、MouseDown ではなく、MouseUp で座標決定しているから、かもしれない。 クリック〜クリック〜 で描かせてるけど、ドラッグで描かせる方が お好きな方々も居るかもしれない。 ただ、ドラッグで描かせようとすると、作図しようとしてるときに、画面の拡大縮小移動が出来ないかもしれない、ってのはありますね。