4D v16.3

メソッドを記述する

ホーム

 
4D v16.3
メソッドを記述する

メソッドを記述する  


 

 

4Dのメソッドエディターはテキストエディターのように動作します。メソッドの記述はテキストの入力、コンポーネントの選択、そしてエクスプローラーやその他のウィンドウからのドラッグ操作により行います。メソッドの記述をより効率的に行うためにタイプアヘッド機能も提供されています。

1つのメソッドには最大32,000行、2GBのコードを記述できます。

4Dのメソッドエディターは基本的なシンタックスチェック機能を提供します。メソッド実行時には追加のエラーチェックが行われます。

v15以前の4Dでは、フランス語版のプログラムはプログラミング言語がフランス語でしたが、他のバージョン(英語版、ドイツ語版、他)では”ユニバーサルな”言語、つまり英語でした。
例えば、コマンド53番はフランス語版ではSTOCKER ENREGISTREMENT という名前でしたが、他の言語ではSAVE RECORD という名前でした。こういったローカル設定は、実数と日付の入力の際にも使用されていました。

これは4D v15以降変更されました。4Dのメソッドエディターは4Dのアプリケーション言語やローカルシステム設定に関係なく、デフォルトで国際的な"English-US"モードを使用し、コマンド53番はフランス語版の4DにおいてもSAVE RECORD という名前になりました。リスト、タイプアヘッドウィンドウ、オンラインヘルプ、等はコマンド名と定数名を英語で表示するようになりました。この設定についての詳細な情報に関しては、4Dプログラミング言語 の章を参照して下さい

” リーションシステム設定を使用”の設定(メソッドページを参照して下さい)を使用することによってローカル設定に基づいた以前のモードを復元し維持することは可能です。もちろん、使用する 設定に関わらず、この章で説明されているコードを書く際の原理というのは同じです。

4D v15 モード (デフォルト):

ローカルモード:

メソッドエディターへの入力と編集には標準のテキスト編集テクニックを使用します。入力を行うと挿入ポイントに文字が表示されます。Return または Enter キーを押すと改行が挿入されます。

注: テンキーのEnterキーとメインキーボードのEnterキーでは押したときの動作が異なります。テンキーのEnterキーを押した場合、4Dは改行を挿入せずに、その行のシンタックスチェックを行います。

メソッドエディターはシンタックス要素ごとに、指定されたスタイルやカラーを使用して表示を行います。この設定は変更できます (メソッドエディター参照)。入力を行う間、また改行を挿入する際、4Dは行のテキストを評価して適切な表示フォーマットを適用します。またIfなどのプログラム構造が使用された場合、4Dは自動でインデントを行います。

矢印キーを使用して異なる行に移動できます。矢印による移動では行の評価が行われないため、クリックよりもすばやく移動できます。

Windowsでは日本語や中国語を入力するためにIMEがサポートされています。

メソッドエディターではナビゲーションショートカットがサポートされています。これらのショートカットについてはこのページで後述します。

メソッドを記述する際にドラッグ&ドロップメカニズムを使用できます。エクスプローラー、同じメソッド内、2つのメソッド間で項目をドラッグ&ドロップできます。

  • エクスプローラーからは以下のものをドラッグ&ドロップできます:
    • ホームページからテーブル名、フィールド名、フォーム名、そしてプロジェクトメソッド。
    • テーブルページからテーブル名とフィールド名。
    • フォームページからテーブル名とフォーム名。
    • メソッドページからメソッド名。
    • 定数ページから定数。
    • コマンドページから4Dコマンド。

    ドラッグ&ドロップを行うと、4Dは常に正しいシンタックスでオブジェクトを挿入します。例えば[People]テーブルのFirstNameフィールドを挿入すると、メソッドエディターには"[People]FirstName"が表示されます。同様に[People]テーブルの"Input"フォームをドラッグ&ドロップすると、[People];"Input"が挿入されます。
    エクスプローラーのコマンドページからコマンドをドラッグすると、メソッドエディターにはシンタックスも挿入されます。このシンタックスは必要に合わせて編集しなければなりません。この機能はコマンドが期待する引数を確認するために存在します。
  • メソッド内あるいは2つのメソッド間でのドラッグ&ドロップ:
    テキストの一部を選択すると、メソッドエディターでのドラッグ&ドロップメカニズムが有効になります。
    デフォルトではドラッグ&ドロップによりテキストが移動されます。コピーを行うにはCtrl キー (Windows) または Option キー (Mac OS) を押しながら操作します。

1つのステートメントを複数行に記述できるようになりました。これを行うにはステートメントの各行をバックスラッシュ "\" 文字 (日本語Windowsの場合半角円マーク) で終了します。4Dはこの文字で終わらない行までを一行として扱います。例えば以下のステートメントは同等です:

: この節の内容はアルファベットに対してのみ有効です。

メソッドメニューの大文字/小文字サブメニュー、またはエディターのコンテキストメニューを使用して、選択したテキストの大文字/小文字を変更することができます:

  • 大文字 / 小文字: 選択した文字を大文字または小文字に変換します。
  • キャメルケース (先頭小文字) / キャメルケース (先頭大文字) : 選択した文字をキャメルケースに変換します。
    テキストにこれらのコマンドを適用すると、スペースと"_"文字は取り除かれ、 各単語の先頭文字が大文字になります。

式の入れ替え機能を使用すると、代入式の左辺と右辺が入れ替わります。例えば:

 variable1:=variable2

は以下のようになります。

 variable2:=variable1

この機能は特にプロパティを取得したり設定したりする一連の代入式を逆にする場合に便利です。この機能を使用するには、対象の行を選択し、メソッドメニューまたはエリアのコンテキストメニューから式の入れ替えコマンドを選択します。選択された行のうち、値を代入する行だけが更新されます。

標準のコピー/ペースト処理に加え、4Dは異なるクリップボードの内容に対して動作する2つの追加の機能を提供します:

  • 4Dは現在のセッション中メソッドエディター中で行われた最新の10個のコピーやカットアクションをメモリに格納します。格納されたこれらの内容はいつでも再利用できます。これを行うにはメソッドエディターコンテキストメニューのクリップボード履歴コマンドを使用するか、ツールバーのクリップボード履歴ボタンを使用します:

    コピー/カットされたテキストの最初の数文字が表示されます。項目を選択するとカーソル位置に、保存されていたテキストが挿入されます。
  • そのほか、9つの番号付けされたクリップボードを利用することもできます。これらのクリップボードにアクセスするにはメソッドエディターツールバーのボタンまたはショートカットを使用します:

    選択したテキストをクリップボードにコピーカーソル位置にクリップボードの内容をペースト
    Windowsクリップボードアイコン上でShift+クリックあるいはAlt+クリッククリップボードアイコン上でCtrl+クリック
    Ctrl+クリップボード番号
    Mac OSクリップボードアイコン上でShift+クリックあるいはAlt+クリッククリップボードアイコン上でCmd+クリック
    Cmd+Shift+クリップボード番号Cmd+クリップボード番号

カーソルのある行を、メソッドメニューの行を上に移動/行を下に移動コマンド、またはAlt/Option + 上矢印/下矢印で上下に移動することができます。行全体を選択する必要はありません。

メソッドをエディターで開いた後に更新された行には色つきのバーが表示されます:

  • 黄色: 行が変更された後に保存されていません。
  • 緑色: 行が変更された後に保存されました。

メソッドエディターには自動補完機能があります。4Dはタイプされた最初の文字に基づき、自動で候補を提案します。

以下の例題の場合、"cop"とタイプしたことにより三角が表示されています。これは複数の候補があることを示しています:

Tabキーを押すと、候補がポップアップリストに表示されます:

リストは要素のタイプごとにグループ化され、そのグループ内で文字順になっています。ダブルクリックまたは矢印キーで選択してからEnter, Carriage Return または Tabキーを押すと、選択された値が挿入されます。

注: 1つしか候補がない場合、その候補が灰色の文字で直接表示されます。Tabキーを押すとその候補が挿入されます:
--->

デフォルトでは以下の区切り文字を入力すると、自動で候補も (区切り文字の前に) 挿入されます  ( ; : = < [ {

  +  ( キー -->

注: この区切り文字に伴って候補が自動で入力される動作を、環境設定のメソッドページで無効にできます。

Esc キーを押すとポップアップが閉じられます。またポップアップが開いた状態で入力を継続することもできます。文字が入力されるに伴い、ポップアップで提案される内容も更新されます。 

タイプされた名前が異なる複数のオブジェクトに対応する場合、オブジェクトは対応するスタイルを使用してリスト中に表示されます。以下のタイプのオブジェクトが表示されます:

  • 4D コマンド
  • SQL コマンド
  • プロジェクトメソッド
  • テーブル名
  • フィールド名
  • 定数
  • メソッド中で宣言されているローカル、プロセス、インタープロセス変数
  • プラグインコマンド
  • 4D キーワード
  • SQL キーワード
  • マクロ (<と>の間に表示)

注: 定数ローカルおよびインタープロセス変数テーブルに対する自動的なリストの表示を無効にできます。これらのオプションは環境設定のメソッドページにあります。

ブロックを選択機能を使用して、挿入カーソルが含まれるコードブロックを選択できます。コードブロックは以下のように決定されます:

  • クォーテーションマーク
  • 括弧
  • 論理構造 (If/Else/End if, While/End while, Repeat/Until Case of/End case)
  • 中括弧

すでにブロックが選択されている状態でこの機能を使用すると、さらに上のレベルのブロックを選択します。

Ctrl+Shift+B (Windows) または Command+Shift+B (Mac OS) を使用するとこの操作を逆に行うことができ、最後に選択されたブロックの選択が解除されます。

注: 挿入ポイントがIf または Else タイプの構造の中にある場合、If または Else 構造ブロックが選択されます。

単語を選択するには、選択したい単語上でダブルクリックを行います。参照される名前 (コマンド、定数、メソッド等) にスペースが含まれる場合、Alt/Option + ダブルクリックを行うとスペースを含む名前全体を選択できます。

メソッドエディターでコード中を移動するために、標準のキーボードショートカットを使用できます。

注: Mac OSではCtrlCommandに読み替えてください。

ショートカットアクション
[Shift]+[右矢印]選択する範囲を一文字ずつ右方向に移動します。
[Shift]+[左矢印]選択する範囲を一文字ずつ左方向に移動します。
[Shift]+[下矢印]選択する範囲を一文字ずつ下方向に移動します。
[Shift]+[上矢印]選択する範囲を一文字ずつ上方向に移動します。
[Ctrl]+[Shift]+[右矢印]選択する範囲を単語単位で右方向に移動します。
[Ctrl]+[Shift]+[左矢印]選択する範囲を単語単位で左方向に移動します。
[Ctrl]+[右矢印]挿入カーソルを単語単位で左から右に移動します。
[Ctrl]+[左矢印]挿入カーソルを単語単位で右から左に移動します。
[Home]挿入カーソルを行の先頭に移動します。
[End]挿入カーソルを行の最後に移動します。
[Ctrl]+[Home]挿入カーソルをメソッドの先頭に移動します。
[Ctrl]+[End]挿入カーソルをメソッドの最後に移動します。
[Shift]+[Home]行の先頭からカーソルまでを選択します。
[Shift]+[End]カーソルから行の最後までを選択します。
[Page Up]メソッドをページ単位で上にスクロールします (挿入カーソル位置は変更されません)。
[Page Down]メソッドをページ単位で下にスクロールします (挿入カーソル位置は変更されません)。

4Dは自動でメソッドシンタックスをチェックします。シンタックスが正しくない状態では、そのことを示す記号がブレークポイントエリアに表示されます 。マウスを記号に重ねるとエラーの内容が表示されます:

コードを入力する際、テンキー側のEnterを押すと、改行されることなく現在の行のシンタックスチェックを行えます。4Dは行を評価し、フォーマットし、エラーがあればそれを表示し、挿入カーソルを行の最後に移動します。メソッド行にエラーがあると表示された場合はそれを修正してください。正しく修正されると4Dはエラー記号を取り除きます。メソッドを保存したりウィンドウを閉じたり、Enterキーを押したりしたときはメソッド全体が評価されます。

メソッドが評価されるとき、4Dは基本的なシンタックスエラーの他、If ... End if などの構造も検証します。また括弧やクォーテーションマークなどの対応 (ペアになっているか) もチェックします。閉じる文字を入力すると、4Dは開始と終了文字を灰色の四角で囲み、それらがペアであることを示します:

注: コード中のこれらの文字をクリックすると、4Dはデフォルトで対応するペアの文字を灰色四角で囲みます。この振る舞いは環境設定のメソッドページ中"括弧のマッチング"オプションで変更できます。

メソッドエディターではスペルミスなどの大きなシンタックスエラーしかチェックできません。実行時エラーはチェックできません。実行時エラーはメソッドが実行されているときに4Dが検出します。4Dはこのようなエラーを処理するためにデバッガー (デバッグ参照) を提供します。またコンパイラーを使用すれば型の非互換などのエラーを検出することもできます。コンパイラーについてはコンパイルを参照してください。

メソッドエディターではカーソルの位置に応じて様々なヘルプTipが表示されます。

  • エラー: ブレークポイントエリアにエラーアイコンが表示されているとき、マウスをアイコンに重ねるとエラーの内容が表示されます。
  • 4Dコマンドの説明: 4Dコマンドにマウスを重ねると、コマンドシンタックスと簡単な説明が表示されます。
  • 変数型: 変数にマウスを重ねると、その変数の方が表示されます (そのメソッド中で宣言されている場合)。
  • プロジェクトメソッド: プロジェクトメソッド呼び出しにマウスを重ねると、以下の内容が表示されます:
    • エクスプローラーで設定された、メソッドのコメント (コメントを使用する参照)、または
    • メソッド先頭のコメント (//で始まる行)。メソッドの先頭にコメント形式でそのメソッドや引数の説明を記述するのは一般的な習慣です。エクスプローラーコメントを削除すれば、こちらの内容をヘルプとして表示できます。
      メソッド先頭のコメント:

      他のメソッドからこのメソッドを呼び出したときのヘルプ:

4DランゲージコマンドのHTMLドキュメントを表示できます。これを行うには、コマンド名の途中にカーソルを挿入し、F1を押します。デフォルトブラウザーの新しいウィンドウにコマンドの完全なドキュメントが表示されます。

アプリケーション環境設定 (ドキュメントの場所) に基づき、4Dはオンラインドキュメントセンター、あるいはローカルからそのコマンドのドキュメントを探します。

コメントを使用するとコード行を無効にできます。プログラムはコメント行をコードとして解釈せず (4Dはメソッドエディター上でコメントにスタイルを適用しません) メソッドを呼び出してもそのコードは実行されません。

コメントを作成するには、そのコメントの先頭に"//"を挿入します。

コメントの最大長は行と同じで32,000文字です。

メソッドメニューやメソッドエディターコンテキストメニューにあるコメント/アンコメントコマンドを使用すると、選択した (複数の) 行を一度にコメント化したり、あるいは逆にコメント解除できます。
このコマンドを使用するには、コマンドを適用したい行を選択し、コメント/アンコメントを選択します:

-->

選択行がアクティブなコードの場合、コメントコマンドが適用されます。選択行にアクティブ行と非アクティブ行が含まれる場合、すべての行に"//"が追加されます。この動作により、複数回コマンドを適用しても、最初のコメントレベルが維持されます。選択行がすべて非アクティブコードの場合、アンコメントコマンドが適用されます。

注: コメント/アンコメント コマンドは行全体に適用されます。行の一部をコメント化するためには使用できません。

メソッドエディターでエスケープシーケンス (エスケープ文字) を使用できます。エスケープシーケンスは特別な文字の代わりに使用される一連の文字です。

エスケープシーケンスは一文字目がバックスラッシュであり、そのあとに文字が続きます。例えば "\t" はタブ文字のエスケープシーケンスです。エスケープシーケンスを使用すると特別な文字の入力が容易になります。例えば "\t" を Char(Tab) の代わりに使用できます。

4Dでは以下のエスケープシーケンスを使用できます:

エスケープシーケンス意味する文字
\nLF (行送り)
\tHT (タブ)
\rCR (改行)
\\\ (バックスラッシュ)
\"" (引用符)

注: エスケープシーケンスでは大文字小文字が区別されません。

以下の例題で改行文字 (エスケープシーケンス "\r") を使用して、警告ダイアログに表示されるメッセージに改行を挿入しています:

 ALERT("The operation has been completed successfully.\rYou may now disconnect.")

警告: "\" (バックスラッシュ) はWindowsでパス名の区切り文字として使用されています。通常4Dはメソッドエディターに入力されたバックスラッシュを自動で"\\"に置き換えることで、これを正しく解釈します。例えば"C:\Folder"と入力すると"C:\\Folder"に変換されます。しかし“C:\MyDocuments\New”と入力した場合4Dは“C:\\MyDocuments\New”を表示します。この場合、二番目のバックスラッシュは "\N" (行送り) と解釈されてしまいます。このようなケースでは開発者がバックスラッシュを2つ入力するようにしなければなりません。
さらに正規表現のパターン定義でもバックスラッシュがエスケープシーケンスとして使用されます。正規表現パターン "\\" を4Dのメソッドエディターに記述する場合は "\\\\" となる点に注意してください。

メソッドエディターにはコードの可読性を高めたり、行のブラウズを容易にしたりする機能があります。

ループや条件分の中にあるコードを折りたたんだり展開したりして、メソッドの可読性を高めることができます:

  • 展開されたコード:
  • 折りたたまれたコード:

展開ボタン [...] の上にマウスを重ねるとヘルプチップが表示され、非表示になっているコードの先頭部分を見ることができます。

折りたたまれたコード部分を選択、コピー、ペースト、または削除することができます。折りたたみに含まれるすべての行が操作の対象となります。このようなコードがペーストされると、自動で展開されます。

コードを折りたたみ、展開する方法はいくつかあります:

  • 折りたたみ/展開アイコンまたは (Windowsでは[+]と[-]、Mac OSでは三角) または閉じられた状態では開くボタン [...] をクリックする
  • メソッド>折りたたみ/展開メニューを使用する:
    • 選択部を折りたたむ / 選択部を展開する: 選択されたテキスト中にあるすべてのコードを折りたたむまたは展開します。
    • 現在のレベルを折りたたむ現在のレベルを展開する: カーソルが存在するレベルのコードを折りたたむまたは展開します。このコマンドはメソッドエディターのコンテキストメニューからもアクセスできます。
    • すべてを折りたたむ / すべてを展開する: メソッド中のすべてのループと条件ブロックを折りたたむまたは展開します。このコマンドはメソッドエディターのツールバーからもアクセスできます: .

コード構造の中を移動することを容易にするための機能があります。

  • ブロックの先頭: カーソルを現在のブロックの先頭に移動します。
  • ブロックの終端: カーソルを現在のブロックの終端に移動します。

このコマンドにはメソッドメニューとメソッドエディターのコンテキストメニューからアクセスできます。以下のショートカットも利用できます:

  • Windows: Ctrl + up arrow または Ctrl + down arrow
  • Mac OS: Command + up arrow または Command + down arrow.

メソッドの特定の行にブックマークを付けることができます。ブックマークを付けると、特別なコマンドを使用してブックマーク間を素早く移動できます。

コードが挿入されたり削除されたりしてブックマーク行が移動すると、ブックマークもそれに伴って移動します。ブックマークはメソッドとともに保存されます。

ブックマークはメソッドメニューのブックマークサブメニューから管理します:

  • 切り替える: カーソルが存在するカレントの行にブックマークを設定します (まだブックマークが設定されていない場合)。すでにブックマークが設定されていればそれを取り除きます。このコマンドにはエディターコンテキストメニューのブックマークをトグル、またはCtrl+F3 (Windows) / Command+F3 (Mac OS) キーボードショートカットからもアクセスできます。
  • すべてを削除: 最前面のメソッドエディターからすべてのブックマークを取り除きます。
  • 次に進む / 前に戻る: ウィンドウ中でブックマーク間を移動するために使用します。コマンドを選択すると、ブックマークが設定された行の先頭にカーソルが移動します。F3 (次に進む) や Shift+F3 (前に戻る) ショートカットも使用できます。

注: 検索で見つかった項目を含む行のマーカーとしてブックマークを使用できます。この場合4Dは自動でブックマークを追加します。詳細はメソッド中の検索と置換を参照してください。



参照 

マクロの作成と利用

 
プロパティ 

プロダクト: 4D
テーマ: メソッドの編集

 
履歴 

 
タグ 

IME

 
ARTICLE USAGE

デザインリファレンス ( 4D v16)
デザインリファレンス ( 4D v16.1)
デザインリファレンス ( 4D v16.3)