DelphiXE3・FireMonkey(FMX)で
俺は本当にCADモドキを作る事が出来るのか?ネタ
ラバーバンド(仮表示線)
画面拡大のときに表示される四角とか、線を作図するときに終点指定時に表示される線とか、あぁいうの。
VCLアプリケーションの場合は、
Pen.Mode で 通常作図の場合は pmCopy を指定するけれども、これに、pmXor を指定することで、同じ位置に2度描きすることで、背景はそのままの状態に保ちつつ、線を描いて、消す、ということが出来る。線を作図する前の背景画像を記憶し、線を消したあとに背景画像を書き直す、というような必要がない。ということで、高速にメモリ等を使用する事もなく、実現が可能で、DOS時代からよく利用されてきた機能です。
しか〜し、FireMonkey(FMX) には、それらしき機能が無い!
先日作った「JWV6」での画面拡大縮小時の四角は、[Shapes]内の TSelection コンポーネントを利用している。けれどもこれはあくまでも四角のみ。なので、Canvas にラバーバンド線を描かせる、のではなく、このように、別コンポーネントを使って画面に別個に描画させる、という手段を取らざるを得ないだろう。 線のときは、TLine、円のときは、TCircle、などではなくて、もっと一括で扱える手法のほうが、メモリ・リソース的には良いんかもしれない。そこで、TPath が使えないだろうか? というのを考え中。
うまくいけばいいんだけど・・・
俺は本当にCADモドキを作る事が出来るのか?ネタ
ラバーバンド(仮表示線)
画面拡大のときに表示される四角とか、線を作図するときに終点指定時に表示される線とか、あぁいうの。
VCLアプリケーションの場合は、
Pen.Mode で 通常作図の場合は pmCopy を指定するけれども、これに、pmXor を指定することで、同じ位置に2度描きすることで、背景はそのままの状態に保ちつつ、線を描いて、消す、ということが出来る。線を作図する前の背景画像を記憶し、線を消したあとに背景画像を書き直す、というような必要がない。ということで、高速にメモリ等を使用する事もなく、実現が可能で、DOS時代からよく利用されてきた機能です。
しか〜し、FireMonkey(FMX) には、それらしき機能が無い!
先日作った「JWV6」での画面拡大縮小時の四角は、[Shapes]内の TSelection コンポーネントを利用している。けれどもこれはあくまでも四角のみ。なので、Canvas にラバーバンド線を描かせる、のではなく、このように、別コンポーネントを使って画面に別個に描画させる、という手段を取らざるを得ないだろう。 線のときは、TLine、円のときは、TCircle、などではなくて、もっと一括で扱える手法のほうが、メモリ・リソース的には良いんかもしれない。そこで、TPath が使えないだろうか? というのを考え中。
うまくいけばいいんだけど・・・