| 4D v20.1Command name | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v20.1
 Command name 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Command name ( command {; info {; theme}} ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| command | 倍長整数 |   | コマンド番号 | |||||
| info | 倍長整数 |   | コマンドのスレッドセーフについてのプロパティ | |||||
| theme | テキスト |   | コマンドのランゲージのテーマ | |||||
| 戻り値 | 文字 |   | ローカライズされたコマンド名 | |||||
Command name コマンドは、引数commandに渡したコマンド番号のコマンド名に加え、コマンドのプロパティ(任意)を返します。
注: コマンド毎の番号はエクスプローラー内と、ドキュメントのプロパティエリア内に書かれています。
互換性に関する注意: 以前はコマンド名が 4Dのバージョンによって異なったり (コマンドの改名)、アプリケーション言語によって異なる場合もあったため、特にトークナイズドされていない部分のコードについて、コマンドを番号を用いて指定することが有用な場合もありました。この目的に応じた Command name コマンドの有用性は、4Dが時間をかけて進化する中で少しずつ縮小されてきました。トークナイズドされていない宣言 (式) に対して、4Dは現在トークンシンタックスを提供しています。これはコマンド名の変化やテーブル等といった他の要素に起因する潜在的な問題を避けられる一方、 これらの名前を読みやすい方法でタイプすることができる方法です (この点についての詳細は、フォーミュラ内でのトークンの使用 の章を参照ください)。それに加え、4D v15以降ではデフォルトで英語がランゲージとして使用されます。しかしながら、データベース設定の Is a list の "リージョンシステム設定を使用" オプションを使用することによって、フランス語版の4Dにおいては引き続きフランス語をランゲージとして使用できます。
二つの任意の引数が使用できます:
Command name コマンドはcommand 変数の番号がが既存のコマンド番号に対応する場合にはOK 変数が1に設定され、それ以外の場合には0が設定されます。しかしながら、既存のコマンドの一部には無効化されてしまったコマンドもあり、そういったコマンドの場合にはCommand name は空の文字列を返すという点に注意が必要です(最後の例題を参照して下さい)。
以下のコードを使用すると、全ての有効な4Dコマンドを配列内に読み込むことができます:
 C_LONGINT($Lon_id)
 C_TEXT($Txt_command)
 ARRAY LONGINT($tLon_Command_IDs;0)
 ARRAY TEXT($tTxt_commands;0)
 
 Repeat
    $Lon_id:=$Lon_id+1
    $Txt_command:=Command name($Lon_id)
    If(OK=1) // コマンド番号が存在する
       If(Length($Txt_command)>0) // コマンドが無効化されていない
          APPEND TO ARRAY($tTxt_commands;$Txt_command)
          APPEND TO ARRAY($tLon_Command_IDs;$Lon_id)
       End if
    End if
 Until(OK=0) //既存のコマンドの終わりフォームで、一般的なサマリーレポートコマンドのドロップダウンリストを作成します。ドロップダウンリストのオブジェクトメソッドに、次のように記述します:
 Case of
    :(Form event code=On Before)
       ARRAY TEXT(asCommand;4)
       asCommand{1}:=Command name(1)
       asCommand{2}:=Command name(2)
       asCommand{3}:=Command name(4)
       asCommand{4}:=Command name(3)
  // ...
 End case4Dの日本語版ではドロップダウンリストに、Sum、Average、Min、Maxが表示されます。フランス語版*では、ドロップダウンリストには、Somme、Moyenne、Min、Maxが表示されます。
*フランス語のプログラミング言語を使用するよう設定されている4Dアプリケーション(互換性に関する注意を参照して下さい)
番号を引数として渡したコマンドがスレッドセーフである場合にはTrueを、そうでない場合にはFalseを返す様なメソッドを作成したい場合を考えます。
  //Is_Thread_Safe project method
  //Is_Thread_Safe(numCom) -> Boolean
 
 C_LONGINT($1;$threadsafe)
 C_TEXT($name)
 C_BOOLEAN($0)
 $name:=Command name($1;$threadsafe;$theme)
 If($threadsafe ?? 0) //最初のビットが1に設定されていた場合
    $0:=True
 Else
    $0:=False
 End ifこれを使い、例えば"SAVE RECORD"コマンド(53番)に対して、以下のように書く事ができます:
 $isSafe:=Is_Thread_Safe(53)
  // Trueを返します
	プロダクト: 4D
	テーマ: ランゲージ
	番号: 
        538
        
        
        
	
	初出: 4D v6
	変更: 4D v15 R5
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v20)
	
	
	ランゲージリファレンス ( 4D v20.1)
	
	
	
 コメントを追加
コメントを追加