エミュレータの操作、およびエミュレータ画面のフィールド情報を参照するためのオブジェクトです。
メソッド名 | 機能 | |
---|---|---|
JavaScript | VB/C# | |
bind | - | 画面更新時のイベント登録 |
contains | Contains | エミュレータ画面上に指定文字列が含まれるかを判定 |
findField | FindField | fieldオブジェクトの取得 |
getCursorCol | GetCursorCol | カーソル位置の桁位置取得 |
getCursorPos | GetCursorPos | カーソル位置のアドレス取得 |
getCursorRow | GetCursorRow | カーソル位置の行位置取得 |
getField | GetField | fieldオブジェクトの取得 |
getFields | GetFields | fieldsオブジェクトの取得 |
getText | GetText | 指定範囲の文字列の取得 |
toTable | ToTable | 矩形範囲からの文字配列の取得 |
update | - | 画面更新の制御 |
オブジェクト名 | 機能 | 初期値 | |
---|---|---|---|
JavaScript | VB/C# | ||
event | - | イベントの発生時にbindメソッドで登録したコールバック関数に渡されるオブジェクト | - |
エミュレータ画面更新時のイベント登録
エミュレータ画面で指定したイベントが発生した際に呼び出されるコールバック関数を登録します。
●呼び出し形式
bind(type, func)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
type | コールバック関数を登録するイベント名を示す文字列 | 省略できません |
func | コールバック関数を指定 | null |
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 dspemu.screen.bind("receive", onReceive); // コールバック関数の登録
エミュレータ画面上に指定文字列が存在するかを判定
エミュレータ画面上の指定した矩形範囲に、指定の文字列が含まれるフィールドが存在するかを判定します。
●呼び出し形式
contains(text, row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
text | 検索する文字列 | 省略できません |
row1 | 開始行位置(1~24) | 1 |
col1 | 開始桁位置(1~80) | 1 |
row2 | 終了行位置(1~24) | 24 |
col2 | 終了桁位置(1~80) | 80 |
●リターン値
関数の呼び出しに成功するとtrueを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はfalseを返します。リターン値がfalseの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 if (!dspemu.screen.contains("TSSX", 1, 5, 24, 5)) { // 矩形範囲のフィールド検索 dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした"); }
fieldオブジェクトの取得
エミュレータ画面上のフィールドより検索文字列が含まれるフィールドのfieldオブジェクトを取得します。対象の文字列が複数存在する場合は、最初に見つかった文字列のオブジェクトを返します。
●呼び出し形式
findField(text, row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
text | 検索する文字列 | 省略時はカーソル位置のfieldオブジェクトを取得、 |
row1 | 開始行位置(1~24) | 1 |
col1 | 開始桁位置(1~80) | 1 |
row2 | 終了行位置(1~24) | 24 |
col2 | 終了桁位置(1~80) | 80 |
●リターン値
関数の呼び出しに成功すると取得したfieldオブジェクトを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var field = dspemu.screen.findField("ユーザID", 1, 10, 24, 20); // 文字列"ユーザID"が含まれるFieldオブジェクトを取得 if (field == null) { dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした"); }
カーソル位置の桁位置取得
現在のエミュレータ画面のカーソル位置の桁位置を取得します。
●呼び出し形式
getCursorCol()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得した桁位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var col = dspemu.screen.getCursorCol(); // 現在のカーソル位置の桁位置を取得
カーソル位置のアドレス取得
現在のエミュレータ画面のカーソル位置のアドレスを取得します。
●呼び出し形式
getCursorPos()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得したアドレスを返します。カーソル位置がエミュレータ画面の範囲外にある場合は-1を返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var cursorAddr = dspemu.screen.getCursorPos(); // 現在のカーソル位置のアドレスを取得 if(cursorAddr != -1){ dspemu.macro.MsgBox("現在のカーソル位置は、行:" + dspemu.row(cursorAddr) + "、桁:" + dspemu.col(cursorAddr) + "です"); }
カーソル位置の行位置取得
現在のエミュレータ画面のカーソル位置の行位置を取得します。
●呼び出し形式
getCursorRow()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得した行位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var row = dspemu.screen.getCursorRow(); // 現在のカーソル位置の行位置を取得
fieldオブジェクトの取得
指定した位置のfieldオブジェクトを取得します。
●呼び出し形式
getField(row, col)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row | エミュレータ画面上の行位置(1~24) | 省略できません |
col | エミュレータ画面上の桁位置(1~80) | 省略できません |
●リターン値
関数の呼び出しに成功すると指定位置のfieldオブジェクトを返します。エラーが発生した場合はnullを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var field = dspemu.screen.getField(1, 1); // 1行1桁目のfieldオブジェクトを取得
fieldsオブジェクトの取得
指定したセレクターに一致するfieldオブジェクトのリストを保持するfieldsオブジェクトを取得します。
●呼び出し形式
getFields(selector)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
selector | エミュレータ画面上のフィールドから抽出する条件を指定 | すべてのフィールド("*") |
●selectorの値
[文字列指定]
指定された文字列を含むフィールドのリストを保持するfieldsオブジェクトを取得します。
[フィールド属性指定]
指定されたフィールド属性を含むフィールドのリストを保持するfieldsオブジェクトを取得します。
属性 | 属性値 | 説明 |
---|---|---|
attr | 'blink' | ブリンクフィールド |
'numeric' | 数字フィールド | |
'protect' | 保護フィールド | |
'unprotect' | 非保護フィールド | |
'reverse' | 反転フィールド | |
'underscore’ | 下線フィールド | |
'visible' | 可視フィールド | |
'kana' | かなフィールド | |
'lightpen' | ライトペン検知可能フィールド | |
'hilight' | 高輝度フィールド | |
'nihongo' | 日本語フィールド | |
'escape' | 脱出要求フィールド | |
'complete' | 完全入力フィールド | |
'trigger' | トリガーフィールド | |
'autoenter' | オートエンターフィールド | |
color | 'Default' | 背景色(初期値) |
'Blue' | 青 | |
'Red' | 赤 | |
'Magenta' | マゼンタ | |
'Green' | 緑 | |
'Cyan' | シアン | |
'Yellow' | 黄 | |
'White' | 白 | |
style | 'assist' | 入力候補フィールド |
'select' | リストボックス表示フィールド | |
'button' | ボタン表示フィールド | |
'link' | リンクボタン表示フィールド | |
'calendar' | カレンダー表示フィールド | |
'check' | チェックボックス表示フィールド | |
'radio' | ラジオボタン表示フィールド | |
'hide' | 非表示フィールド | |
name | フィールド名 | 指定したフィールド名 |
[範囲指定]
指定された範囲のフィールド属性を含むフィールドのリストを保持するfieldsオブジェクトを取得します。範囲はアドレス、または行桁位置での指定が可能です。
複数のセレクターを指定することも可能です。この場合、fieldsオブジェクトは指定したセレクターのOR条件で取得されます。セレクターを複数指定する場合はカンマで区切ってください。
●リターン値
関数の呼び出しに成功すると取得したfieldsオブジェクトを返します。一致した文字列が見つからなかった場合や、エラーが発生した場合はlengthが0 のfieldsオブジェクトを返します。リターン値でlengthプロパティが0のfieldsオブジェクトが返された場合は、エラーの詳細をgetErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 // 文字列「担当」を含むfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("担当");
// すべてのfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("*");
// 保護フィールドのfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("{attr: 'protect'}"); // アドレス(0~1919)範囲のfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("{start: 0, end: 1919}"); // 指定行桁範囲のfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("{row1: 1, col1: 1},{row2: 24, col2: 80}"); // 矩形行桁範囲のfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("{row: 1, col: 1}, {row: 24, col: 10}"); // 複数のセレクターを指定してfieldsオブジェクトを取得 var fields = dspemu.screen.getFields("担当", "{attr: 'protect'}", "{row: 10, col: 1},{row: 20, col: 80}");
指定範囲の文字列の取得
エミュレータ画面より指定した範囲の文字列を取得します。指定範囲内に含まれるフィールドアトリビュート位置は空白文字に置き換えます。
●呼び出し形式
getText(row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row1 | 指定範囲の開始行位置 | 1 |
col1 | 指定範囲の開始桁位置 | 1 |
row1 | 指定範囲の終了桁位置 | 24 |
col2 | 指定範囲の終了桁位置 | 80 |
●リターン値
関数の呼び出しに成功すると取得した文字列を返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var text = dspemu.screen.getText(1, 1, 1, 80); // 指定範囲の文字列を取得
矩形範囲からの文字配列の取得
指定位置が含まれるフィールドの矩形範囲より2次元配列の文字列データを取得します。指定位置がフィールドの途中の場合、開始位置はその位置が含まれるフィールドの先頭位置に、終了位置はその位置が含まれるフィールドの末尾位置に補正されます。
●呼び出し形式
toTable(row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row1 | 指定範囲の開始行位置 | 1 |
col1 | 指定範囲の開始桁位置 | 1 |
row1 | 指定範囲の終了桁位置 | 24 |
col2 | 指定範囲の終了桁位置 | 80 |
●リターン値
関数の呼び出しに成功すると指定範囲のフィールド文字列をテーブル文字列として返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
参考
toTableメソッドで取得するテーブル文字列には、アトリビュート属性のみのフィールドは含まれません。
●取得データの形式
本メソッドにより取得されるデータは、文字列データの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 (2, 1, 24, 80); // 指定範囲の文字配列を取得
エミュレータ画面の更新制御
エミュレータ画面の更新を制御します。
●呼び出し形式
update(flag)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
flag | true:エミュレータ画面の更新を開始 | true |
参考
画面更新を停止してもscreenオブジェクトのreceiveイベントは実行されます。停止後の再開はreceiveイベントで行ってください。
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 dspemu.screen.update(false); // 画面更新の停止