4D v16.3マクロの作成と利用 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
マクロの作成と利用
マクロの作成と利用
メソッド内でマクロコマンドを利用することができます。マクロを利用すればメソッドの入力にかかる時間を大幅に短縮することができます。 マクロコマンドは4Dコードのパーツで、どのデータベースが開かれているかにかかわらず、あらゆるメソッドのどんな場所にでも挿入することができます。マクロにはすべてのタイプの4Dテキスト、コマンド、定数、さらにマクロ実行時のメソッドコンテキストにより値が置換される特別なタグを記述することができます。例えばマクロに<method_name/>というタグを記述しておくと、このタグはマクロ挿入時にカレンとのプロジェクトメソッド名に置換されます。 マクロは複数のXMLフォーマットのテキストファイルに格納されます。マクロはメソッドエディターリスト、またはエディター内のコンテキストメニュー、さらに自動補完機能から呼び出すことが可能です。 4DマクロはXMLフォーマットで記述されます。4Dが提供するマクロファイルをそのまま使用することも、変更することもできます。 4Dは“Macros v2”という名前のフォルダーからマクロをロードします。マクロはXMLファイルとしてこのフォルダーに配置しなければなりません。マクロファイルはフォルダー内に複数置くことができます。 “Macros v2”フォルダーは以下の場所に配置できます:
これら3つの場所は同時に利用可能です。各場所に“Macros v2”フォルダーをインストールできます。マクロは以下の順番でロードされます: 4Dフォルダー、ストラクチャーファイル、コンポーネント。 4Dはデフォルトのマクロを提供しています。このマクロは4Dを最初に起動する際に、マシンのアクティブな4Dフォルダー内の“Macros v2”フォルダーに、“Macros.xml”という名前で作成されるXMLファイル内に含まれます。 このファイルを変更することができます。またフォルダー内に別のマクロファイルを追加することもできます。このフォルダーに問題が発生した場合は、フォルダーを削除することで次回の4D起動時に新たに作成されます。 標準のテキストエディターやプログラムを使用して、“Macros.xml”ファイルにカスタマイズしたマクロを追加できます。またフォルダー内にカスタマイズしたマクロを記述したファイルを追加することもできます。 ローカルモードでは4Dを使用中にマクロファイルを開くことができます。利用可能なマクロのリストは4Dがアクティブになるたびに更新されます。例えばテキストエディターを最前面にしてマクロファイルを更新し、その後メソッドエディターに戻ると、新しいマクロがメソッドエディターで利用可能になっています。 空およびエラーのあるマクロは表示されません。 4DのマクロコマンドファイルはXML標準に準拠していなければなりません。つまりXML宣言 <?xml version="1.0" ...?> とドキュメント宣言 <!DOCTYPE macros SYSTEM "http://www.4d.com/dtd/2007/macros.dtd"> 文がマクロファイルの先頭になければならず、そうでない場合、マクロはロードされません。異なるタイプのXMLエンコーディングがサポートされていますが、Mac/PC (UTF-8) 互換のエンコーディングを使用することをお勧めします。4Dはマクロファイルを検証するためのDTDを提供しています。ファイルは以下の場所にあります:
マクロファイルに宣言文が含まれない場合や検証に失敗する場合、マクロはロードされません。 4Dマクロは"要素"と呼ばれるカスタマイズされたXMLタグを使用して構築されます。 いくつかのタグは定義の開始と終了を表し (<tag>と</tag>のようなペア)、その他のタグは実行コンテキストにより置換されます (<tag/>)。 XML仕様に準拠し、いくつかのタグは属性を含むことがあります。明示されない限り属性の指定は任意であり、省略された場合はデフォルト値が使用されます。要素および属性のシンタックスは以下の通りです:
要素に複数の属性を指定できる場合、スペースで区切って記述します: 利用可能なタグのリストと利用モードは以下の通りです:
* マクロはメソッドエディターのコンテキストメニューやタイプアヘッド機能を使用して呼び出すことができます (後述参照)。 以下はマクロ定義の例題です:
<method>タグを使用すると、4Dプロジェクトメソッドを実行するマクロコマンドを作成して使用することができます。これにより開発者はコンポーネントにマクロコマンドを添付して配布し、洗練された機能を提供することが可能になります。例えば以下のマクロはカレントのメソッド名を引数にとり、MyMethod メソッドを実行します: <method>MyMethod("<method_name/>")</method> 呼び出されたメソッドコードは新規プロセスで実行されます。このプロセスはメソッド実行後に消失します。 注: 呼び出されたメソッドの実行が終了するまでストラクチャープロセスは停止されます。メソッドの実行は素早く終了し、アプリケーションをブロックするリスクがないことを確認しなければなりません。ブロックが発生してしまった場合、Ctrl+F8 (Windows) または Command+F8 (Mac OS) でこのプロセスをアボートできます。 デフォルトでマクロはコンテキストメニュー、メソッドエディターのツールバー、自動補完機能、またはメソッドエディターウィンドウ下部のマクロリストから呼び出すことができます。 各マクロごとにコンテキストメニューや自動補完機能を使用した呼び出しを禁止することができる点に留意してください。 デフォルトですべてのマクロはメソッドエディターのコンテキストメニュー (マクロ挿入階層コマンド) またはツールバーのマクロボタンから呼び出すことができます。 <macro>タグのin_menu属性を使用して、マクロをこのメニューに表示させるかどうかを指定できます。 コンテキストメニュー内で、マクロは“Macros.xml”ファイルに記述された順番で表示されます。つまりファイルを編集することでこの順番を変更できます。 デフォルトですべてのマクロは自動補完 (タイプアヘッド) 機能からアクセスできます (メソッドを記述する参照)。<macro>タグのtype_ahead属性を使用して、特定のマクロをこの動作の対象から外すことができます。 注: マクロに<selection/>タグが含まれている場合、このマクロは自動補完ポップアップウィンドウには表示されません。 メソッドエディターのリストにマクロを表示させることができます (メソッドを記述する参照)。リスト中でマクロをダブルクリックし、呼び出すことができます。特定のマクロをこのリストから呼び出すことができます。 マクロのサポートは4Dのバージョンごとに変わることがあります。カスタマイズされたマクロを管理しつつ、異なるバージョンの互換性を保持するために、4Dは以前のバージョンのマクロを取り除くことはしません。利用可能な最新の機能を使用したい場合は、それをあなたのバージョンに適用する必要があります。 v11より前のバージョンの4Dでは、<method>タグを使用する際、メソッド中でテキストを操作するための一連のプロセス変数が自動で管理されていました: 入力変数 (_textSel, _blobSel, _selLen, _textMethod, _blobMethod, _methodLen) を使用してテキストを取り出し、出力変数 (_textReplace, _blobReplace, _action) を使用してテキストを挿入しました。互換性のためこのメカニズムはまだサポートされています。しかしバージョン11からは以下の理由で廃止予定リストに置かれています:
ゆえに、選択されたテキストはGET MACRO PARAMETERとSET MACRO PARAMETERコマンドを使用して管理することが推奨されます。これらのコマンドを使用すればホストデータベースとコンポーネント間でテキストを相互に交換することができ、マクロを管理するためのコンポーネントを作成することができます。マクロでこのモードを有効にするには、macro要素内でversion属性に値"2"を指定しなければなりません。この場合、4Dは_textSel, _textReplace等の定義済み変数を管理しなくなり、GET MACRO PARAMETERとSET MACRO PARAMETERが利用可能になります。属性は以下のように定義します: <macro name="MyMacro" version="2"> この属性を指定しない場合、以前のモードが保持されます。 4D v11より、マクロファイルはXML標準に準拠しなければならず、厳密なシンタックスルールが適用されるようになりました。これにより以前のバージョンで作成されたマクロコードに非互換が発生することがあり、またXMLファイルがロードできなくなることがあります。異常な動作が起こるのは以下のケースです:
4Dバージョン12では、SQLコマンドの利用を容易にするための新しいマクロコマンドを利用できます。"Macros.xml"ファイルは開発者がカスタマイズ可能なため、新しいバージョンの4Dをインストールしても自動では既存のファイルを更新しません。4D v12の新しいSQLマクロコマンドを使用するためには以下のいずれかの作業を行います:
参照
|
プロパティ
プロダクト: 4D
履歴
ARTICLE USAGE
デザインリファレンス ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||