エミュレータの操作、およびエミュレータ画面のフィールド情報を参照するためのオブジェクトです。
メソッド名 | 機能 |
---|---|
FindField | Fieldオブジェクトの取得 |
GetCursorPos | カーソル位置のアドレス取得 |
GetText | 指定範囲の文字列の取得 |
ToTable | 矩形範囲からの文字配列の取得 |
Fieldオブジェクトの取得
エミュレータ画面上のフィールドより検索文字列が含まれるフィールドのFieldオブジェクトを取得します。対象の文字列が複数存在する場合は、最初に見つかった文字列のオブジェクトを返します。
●呼び出し形式
FindField (Text)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
Text | 検索する文字列 | 省略時はカーソル位置のFieldオブジェクトを取得します |
●リターン値
関数の呼び出しに成功すると取得したFieldオブジェクトを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はnullを返します。リターン値がnullの場合はGetError関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var Dspemu = new WsmgrDspemu(); // インスタンスの作成 field = Dspemu.screen.FindField ("ユーザID"); // 文字列"ユーザID"が含まれるFieldオブジェクトを取得 if(field == null){ Dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした"); }
カーソル位置のアドレス取得
現在のエミュレータ画面のカーソル位置のアドレスを取得します。
●呼び出し形式
GetCursorPos ()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得したアドレスを返します。カーソル位置がエミュレータ画面の範囲外にある場合は-1を返します。
●JavaScriptを用いて記述した例
var Dspemu = new WsmgrDspemu(); // インスタンスの作成 var CursorAddr = Dspemu.screen.GetCursorPos(); // 現在のカーソル位置のアドレスを取得 if(CursorAddr != -1){ Dspemu.macro.MsgBox("現在のカーソル位置は、
行:"+Dspemu.Row(CursorAddr)+"、桁:"+Dspemu.Col(CursorAddr)+"です"); }
指定範囲の文字列の取得
エミュレータ画面より指定した範囲の文字列を取得します。指定範囲内に含まれるフィールドアトリビュート位置は空白文字に置き換えます。
●呼び出し形式
GetText(StartAddr, EndAddr)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
StartAddr | 指定範囲の先頭アドレス位置 | 省略できません |
EndAddr | 指定範囲の終了アドレス位置 | 省略できません |
パラメータには「先頭アドレス位置 < 終了アドレス位置」となるよう指定してください。
●リターン値
関数の呼び出しに成功すると取得した文字列を返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はGetError関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var Dspemu = new WsmgrDspemu(); // インスタンスの作成 var Text = Dspemu.screen.GetText(24, 80); // 指定アドレス(24~80)の文字列を取得
矩形範囲からの文字配列の取得
指定位置が含まれるフィールドの矩形範囲より2次元配列の文字列データを取得します。指定位置がフィールドの途中の場合、開始位置はその位置が含まれるフィールドの先頭位置に、終了位置はその位置が含まれるフィールドの末尾位置に補正されます。
●呼び出し形式
ToTable(StartAddr, EndAddr)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
StartAddr | 指定範囲の先頭アドレス位置 | 省略できません |
EndAddr | 指定範囲の終了アドレス位置 | 省略できません |
●リターン値
関数の呼び出しに成功すると指定範囲のフィールド文字列をテーブル文字列として返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はGetError関数を使ってエラー番号を調べることができます。
●取得データの形式
本メソッドにより取得されるデータは、文字列データの2次元配列の形式となります。指定された範囲に存在するフィールドがエミュレータ画面上で行が変わると、次の要素の配列とみなされます。
例1)
フィールド1~3が同じ行、フィールド4~5が次行に存在する場合
フィールド1 | フィールド2 | フィールド3 |
フィールド4 | フィールド5 | フィールド6 |
取得データの配列は次のようになります。
[ [フィールド1の文字列, フィールド2の文字列, フィールド3の文字列],
[フィールド4の文字列, フィールド5の文字列, フィールド6の文字列] ]
例2)
行ごとのフィールド数が異なる場合
フィールド1 | ||
フィールド2 | フィールド3 | フィールド4 |
フィールド5 | フィールド6 |
取得データの配列は次のようになります。
[ [フィールド1の文字列],
[フィールド2の文字列, フィールド3の文字列, フィールド4の文字列],
[フィールド5の文字列, フィールド6の文字列] ]
例3)
フィールドが行をまたいでいる場合
フィールド1 | ||
フィールド1の続き | フィールド2 | フィールド3 |
フィールド3の続き | フィールド4 | フィールド5 |
フィールド6 | フィールド7 |
取得データの配列は次のようになります。
[ [フィールド1の文字列],
[フィールド1の続きの文字列, フィールド2の文字列, フィールド3の文字列],
[フィールド3の続きの文字列, フィールド4の文字列, フィールド5の文字列]
[フィールド6の文字列, フィールド7の文字列] ]
●JavaScriptを用いて記述した例
var Dspemu = new WsmgrDspemu(); // インスタンスの作成 var array = Dspemu.screen.ToTable (Dspemu.Addr(2, 1), Dspemu.Addr(24, 80));