Tips

メソッドエディタでオートコンプリート

日付2000/02/01
ID00-001
バージョン6.0.x以降
プラットフォームMacintosh、Windows

Version 6以降のメソッドエディタでは"@"マークがワイルドカードに使えるようになりました。例えば、「LOAD COMPRESS PICTURE FROM FILE」という長い名前のコマンドを打ち込む時にも全部をタイプする代わりに「LOAD C@」とだけ書いて、「return」「enter」「他の行をクリック」のいずれかを行えば、4Dが自動的に残りの文字を補ってくれる、という便利な機能です。

しかし、慣れてくれば「@」「enter」と2ストローク打つ事すら面倒になります。出来れば1ストロークでしかも、打ちやすい他のキーに割り当てたいところです。(enterはともかく@マークは機種によって位置が違うので場所が不便)

そこで、以下の2つのメソッドを使ってこの機能が「Tab」キーで実現出来るようにしよう。

` メソッド:TabForAutoComplete
`   イベントプロシージャ
`   Tabキーを打たれると呼び出され、@+"enter"をポスト
If (keycode=Tab )
If (InDesignMode )
FILTER EVENT
POST KEY(At sign )
POST KEY(Enter )
End if
End if

` メソッド:InDesignMode
`   デザインプロセスのメソッドエディタが最前面の時にだけ
`   Trueを返す。
$0:=False
$DesignPID:=Process number("デザインプロセス")
WINDOW LIST($WinRefList)
If (Size of array($WinRefList)>0)
$i:=0
Repeat
$i:=$i+1
$FoundNomalWindow:=(Window kind($WinRefList{$i})#Floating window ))
Until ($FoundNomalWindow)
$TopWin:=$WinRefList{$i}
If (Window process($TopWin)=$DesignPID)
$0:=(Get window title($TopWin)="メソッド:@")
End if
End if

この2つのメソッドを登録したら、On startup で
ON EVENT CALL ("TabForAutoComplete")
と書いて、データベースを再起動してみます。

デザインモードへ入り、メソッドエディタに
「LOAD C」まで打って「TAB」キーを叩けば、残りの文字が補われ、
「LOAD COMPRESS PICTURE FROM FILE」と変わる。

この機能は、プロセスメソッド名にも有効で、自分の作った長い名前のメソッドの入力も手間を省いてくれます。