ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||
|
4D v20 R7
コンパイラコマンド
|
_O_C_BLOB | _O_C_REAL | _O_C_TEXT |
_O_C_BOOLEAN | _O_C_LONGINT | _O_C_DATE |
_O_C_POINTER | _O_C_PICTURE | _O_C_TIME |
_O_C_OBJECT | _O_C_VARIANT | IDLE |
互換性に関する注意: 廃止予定のコマンド_o_C_GRAPH、_o_C_INTEGER と _o_C_STRING は今後使用されるべきではありません。
IDLE コマンド以外のこれらのコマンドは、変数を宣言し、それらを指定したデータタイプとしてキャストします。変数を宣言することによって、変数のデータタイプに 関連する曖昧さが解決されます。変数がこれらのコマンドのいずれかで宣言されていない場合には、コンパイラが変数のデータタイプを判断しようとします。 フォームで使用される変数のデータタイプは、多くの場合、コンパイラで判断するのは困難です。このため、開発者がこれらのコマンドによってフォームで使用 される変数を宣言することが特に重要です。
注: 時間を節約するために、コンパイラウインドウにあるオプションを使用し、(コンパイラメソッドと呼ばれる) 変数定義メソッドの生成や更新を行うことができます。このオプションは、データベース内で使用されるすべての変数のタイプ指定を行う変数定義メソッドを自 動作成します。
配列は変数で、コンパイルについては標準変数と同じ規則に従わなければなりません。配列の宣言命令は配列テーマ内にまとめられています。
これらの規則については、下記の節を参照してください:
以下の例は、コンパイラ用の基本的な変数宣言です:
C_BLOB(vxMyBlob) // プロセス変数vxMyBlobはBLOB型の変数として宣言されます
C_BOOLEAN(<>OnWindows) // インタープロセス変数<>OnWindowsはブール型の変数として宣言されます
C_DATE($vdCurDate) // ローカル変数$vdCurDateは日付型の変数として宣言されます
C_LONGINT(vg1;vg2;vg3) // 3つのプロセス変数vg1、vg2そしてvg3は倍長整数型の変数として宣言されます
以下の例は、プロジェクトメソッドOneMethodAmongOthersにて、3つの引数を宣言しています:
// OneMethodAmongOthers プロジェクトメソッド
// OneMethodAmongOthers ( Real ; Integer { ; Long } )
// OneMethodAmongOthers ( Amount ; Percentage { ; Ratio } )
C_REAL($1) // 1番目の引数は実数
C_INTEGER($2) // 2番目の引数は整数
C_LONGINT($3) // 3番目の引数は倍長整数
` ...
以下のCapitalize プロジェクトメソッドは、テキストの引数を受けとり、テキストの結果を返します:
// Capitalize プロジェクトメソッド
<p> // Capitalize ( Text ) -> Text
// Capitalize ( Source string ) -> Capitalized string
C_TEXT($0;$1)
$0:=Uppercase(Substring($1;1;1))+Lowercase(Substring($1;2))
以下のプロジェクトメソッドSEND PACKETSは、引数として時間と、可変の数のテキスト引数を受け取ります:
` SEND PACKETS プロジェクトメソッド
` SEND PACKETS ( Time ; Text { ; Text2... ; TextN } )
` SEND PACKETS ( docRef ; Data { ; Data2... ; DataN } )
C_TIME($1)
C_TEXT(${2})
C_LONGINT($vlPacket)
For($vlPacket;2;Count parameters)
SEND PACKET($1;${$vlPacket})
End for
以下の例において、プロジェクトメソッドCOMPILER_Param_Predeclare28 は、コンパイル用に他のプロジェクトメソッドのシンタックスを事前に宣言しています:
// COMPILER_Param_Predeclare28 プロジェクトメソッド
C_REAL(OneMethodAmongOthers;$1) // OneMethodAmongOthers ( Real ; Integer { ; Long } )
C_DATE(OneMethodAmongOthers;$2) ` ...
C_LONGINT(OneMethodAmongOthers;$3) ` ...
C_TEXT(Capitalize;255;$0;$1) // Capitalize ( String ) -> String
C_TIME(SEND PACKETS;$1) // SEND PACKETS ( Time ; Text { ; Text2... ; TextN } )
C_TEXT(SEND PACKETS;${2}) ` ...
_o_C_GRAPH
_o_C_INTEGER
_o_C_STRING
C_BLOB
C_BOOLEEN
C_DATE
C_LONGINT
C_PICTURE
C_POINTER
C_REAL
C_TEXT
C_TIME
IDLE
プロダクト: 4D
テーマ: コンパイラ
変更: 4D v15 R5
ランゲージリファレンス ( 4D v20 R7)