Tips

インタープリタモードとフォームオブジェクトの変数宣言

日付2011/11/01
ID76395 (英語原文参照)
バージョンv12
プラットフォームMac/Win

インタープリタモードでは,フォームオブジェクトにバインドされている変数をどのように宣言するかに気を配る必要があります。

推奨されているのは,フォーム初期化コードのなるべく早い段階で,フォームオブジェクトにバインドされている変数を宣言することです。具体的には,フォームメソッドのOn Loadイベント,あるいはDIALOGコマンドを実行するよりも前,フォームを開くメソッドの中でフォームに配置されている変数を宣言すると良いでしょう。

なぜ,これは重要なことなのでしょうか。

フォームにMyReal_Rという変数が配置されていたとしましょう。実数タイプの変数として使用するつもりです。C_REAL(MyReal_R) というコードは存在しますが,それはフォームを開いただけでは,実行されません。インタプリターモードでは,ユーザーがこのオブジェクトに何らかのテキストを入力した途端,コンパイラがフォームオブジェクトを適当なタイプに初期化します。その後,もし,コードに記述されたC_REAL(MyReal_R) が実行されることになれば,フォームオブジェクトは改めて実数タイプに再宣言され,結果的にユーザーが入力した値はデフォルトの数値タイプ(つまり0)で上書きされてしまいます。

コンパイルモードでは,変数はコンパイルの段階ですべて宣言されるので,こうした問題は起きません。