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

ラバーバンド(仮表示線)

画面拡大のときに表示される四角とか、線を作図するときに終点指定時に表示される線とか、あぁいうの。

VCLアプリケーションの場合は、
Pen.Mode で 通常作図の場合は pmCopy を指定するけれども、これに、pmXor を指定することで、同じ位置に2度描きすることで、背景はそのままの状態に保ちつつ、線を描いて、消す、ということが出来る。線を作図する前の背景画像を記憶し、線を消したあとに背景画像を書き直す、というような必要がない。ということで、高速にメモリ等を使用する事もなく、実現が可能で、DOS時代からよく利用されてきた機能です。

しか〜し、FireMonkey(FMX) には、それらしき機能が無い!

先日作った「JWV6」での画面拡大縮小時の四角は、[Shapes]内の TSelection コンポーネントを利用している。けれどもこれはあくまでも四角のみ。なので、Canvas にラバーバンド線を描かせる、のではなく、このように、別コンポーネントを使って画面に別個に描画させる、という手段を取らざるを得ないだろう。 線のときは、TLine、円のときは、TCircle、などではなくて、もっと一括で扱える手法のほうが、メモリ・リソース的には良いんかもしれない。そこで、TPath が使えないだろうか? というのを考え中。

うまくいけばいいんだけど・・・