Tips

オブジェクトメソッドからフォームの名前を得る

日付2002/05/31
ID01-916
バージョン6.5.x , 6.7.x, and 6.8.x
プラットフォームWindows and Mac OS

下記の単純なメソッドは、カレントフォームの名前を取得するものです。


If (Form event=On Timer)
C_TEXT($FormMethod;vFormName)
C_LONGINT($Position)
$FormMethod:=Current method name
$Position:=Position(".";$FormMethod)
vFormName:=Substring($FormMethod;$Position+1)
SET TIMER(0)
End if

基礎的なアイデアはフォームメソッドを強制的に実行させるところにあります。これはオブジェクトメソッドからSET TIMERコマンドを使うことで実現できます:

SET TIMER(1) ` 待ち時間タイマーを 1 tickに設定

この1行のプログラムは、フォームメソッドを直ちに実行してくれます。
そして、最初に掲げたメソッドをフォームメソッドの中に記述しておけば、プロセス変数「vFormName」にフォームの名前を得ることが出来ます。

※最後の行でタイマーを0へ戻しているので、何度も繰り返し実行されることはありません。