Tips

ピクチャ変数オブジェクトのSVGイメージにアクセスする

日付2010/08/02
ID76137 (英語原文参照)
バージョンv11
プラットフォームMac/Win

4D v12のは, 4Dのピクチャ変数オブジェクトに表示されているSVGイメージにアクセスするための新しいコマンドが存在します。

4DでSVGを扱う場合, まずメモリに置かれたXML文書があり, それをSVG EXPORT TO PICTUREコマンドなどでピクチャ変数に転写すると, そのピクチャは, データソースとして参照するためにXML文書のコピーを保有することになります。ピクチャが参照されるたびに使用されるのはそのデータソースです。4D v11 SQLでSVGを操作しようとする場合, オリジナルのXML文書を破棄せずにとっておき, 変更を加えてから再度SVG EXPORT TO PICTUREコマンドでピクチャに転写することが必要でした。

4D v12では, 4Dピクチャに転写されたデータソースに直接アクセスできるようになりました。したがって, もうオリジナルのXML文書をキープする必要はありません。関係するのは下記のSVGコマンドです。

SVG Find element ID by coordinates

SVG Find element IDs by rect

SVG GET ATTRIBUTE

それぞれのコマンドは, ピクチャを変数またはオブジェクト名で指定することができます。オブジェクト名で参照するには, 最初の引数にアスタリスク(*)を渡します。ピクチャを変数で指定するのはピクチャに転写された当初のXMLデータソースを参照する場合で, オブジェクト名で指定するのは実際にレンダリング表示されているイメージのデータソースを参照する場合です。この違いをしっかり理解することは大切です。SVG SET ATTRIBUTEコマンドやSVG SHOW ELEMENTコマンドを発行した後は, レンダリングとオリジナルが一致しなくなるからです。

ちなみにSVG SET ATTRIBUTEコマンドとSVG SHOW ELEMENTコマンドのほうも, ピクチャを変数名またはオブジェクト名を指定することができますが, どちらの方法を取ったとしても, 操作の対象は常にレンダリングイメージのほうであり, オリジナルのデータソースを書き換えることはありません。