====== 文字表示・入力 ====== [[erabasicリファレンス|リファレンストップ]] · [[erabasicリファレンス_総索引|名前の総索引]] 文字表示、フォント・色、入力、入力待ちを調べます。 ===== 命令の説明 ===== ==== DRAWLINE ==== 横一列に横棒を表示する命令です。 ==== WAIT ==== 入力待ちを行います。Emueraの場合はマウスクリックも入力と扱います。 ==== PRINT(|V|S|FORM|FORMS)(|K|D)(|L|W) ==== PRINT系の基本となる命令です。\\ 1つ目の括弧内のキーワードは引数タイプを指定します。\\ * なし - (<文字列>) * V - (<数式> <数式> ,<数式> ……) * S - <文字列式> * FORM - (<書式付文字列>) * FORMS - <書式付文字列式> 2つ目の括弧内のキーワードの"K"はFORCEKANA命令の適用を指定します。またキーワード"D"はSETCOLOR命令を無視することを指定します。ver1.736現在、キーワードKとDを同時に指定することはできません。\\ * なし - FORCEKANAを無視し、SETCOLORで指定された色で描画します。 * K - FORCEKANAを適用して描画します。 * D - SETCOLORを無視してコンフィグで指定されたディフォルト色で描画します。 * 3つ目の括弧内のキーワードは描画後の改行、WAITの有無を指定します。 * なし - PRINTのみで改行やWAITは行いません。 * L - PRINT後、改行します。 * W - PRINT後、改行しWAIT命令を行います。 これらの組み合わせにより、例えばPRINTSDWであれば、引数として<文字列式>を指定し、ディフォルト色で描画し、PRINT後にWAIT命令を行うことを意味します。\\ === 基本の動作 === **PRINT 文字列** 文字列表示命令です。 **PRINTL 文字列** 文字列の表示と改行を一緒に行う命令です。 **PRINTS 文字列変数** 文字列変数の表示を行う命令です。なお、""や%%などで変数を囲んではいけません。 **PRINTSL 文字列変数** 文字列変数の表示と改行を一緒に行う命令です。文字列変数の取扱いはPRINTSと同じです。 **PRINTSW 文字列変数** 文字列変数の表示と入力待ちと改行を行う命令です。文字列変数の取扱いはPRINTSと同じです。 **PRINTV 数値変数** 数値変数の表示を行う命令です。 **PRINTVL 数値変数** 数値変数の表示と改行を一緒に行う命令です。 **PRINTVW 数値変数** 数値変数の表示と入力待ちと改行を行う命令です。 **PRINTW 文字列** 文字列の表示を行い、入力待ちを行い、そして改行を行う命令です。 **PRINTFORM FORM文字列** FORM文字列の表示を行う命令です。FORM文字列とは通常の文字列および数値変数と文字列変数を同時に表示できるもので、数値変数は変数名を{}で囲みます。文字列変数は変数名を%%で囲みます。 **PRINTFORML FORM文字列** FORM文字列の表示と改行を同時に行う命令です。FORM文字列に関してはPRINTFORMと同じです。 **PRINTFORMW FORM文字列** FORM文字列の表示を行い、入力待ちを行い、そして改行を行う命令です。FORM文字列に関してはPRINTFORMと同じです。 ==== PRINTSINGLE(|V|S|FORM|FORMS)(|K|D) ==== PRINTSINGLE系はPRINTLとほぼ同じですが、PRINTSINGLE系は文字列を折り返さず、必ず1行で表示します。\\ 画面端を超えた文字は描画されません。\\ また、自動的に改行が付与されるため、(|L|W)キーワードはありません。\\ 他のキーワードの意味はPRINT系と同じです。\\ ==== PRINT(|FORM)(C|LC)(|K|D) ==== PRINTC系命令です。\\ コンフィグ"PRINTCの文字数"(初期値25)で指定した文字数になるように半角スペースを補ってPRINTする命令です。\\ なお、EmueraではPRINTされた文字列のボタン化処理の中でPRINTC系命令を多少特別扱いしています。\\ 1つ目の括弧内のキーワードは引数タイプを指定します。\\ * なし - <文字列> * FORM - <書式付文字列> 2つ目の括弧内のキーワードは揃える位置を指定します。\\ * C - 右に揃えます(左側に半角スペースを追加します) * LC - 左に揃えます。 3つ目の括弧内のK,DはPRINT系と同じです。\\ ==== PRINTDATA(|K|D)(|L|W) ==== PRINTDATA系命令です。 私家改造版readmeによれば、\\  書式:PRINTDATA (数値変数:省略可)      DATA (文字)      DATAFORM (FORM文字列)      DATALIST       (DATA or DATAFORMの羅列)      ENDLIST     ENDDATA  内容:DATA、DATAFORMおよびDATALIST〜ENDLISTで指定した文字列を確率均一でランダムで表示     IFとRANDを使わずにランダム表示を実装可能     引数に数値変数を指定した場合は表示された変数DATAの番号が入ります     表示された文字列によって後の処理をいじりたい場合にどうぞ     DATALIST〜ENDLIST内ではDATAorDATAFORM1個が1行に相当します とのことです。\\ K、D、L、Wキーワードの効果はPRINT系と同じです。\\ PRINTDATA系〜ENDDATAの内部にDATA系による表示データが与えられてない場合、何もせずに次に進みます。\\ PRINTDATA系〜ENDDATA、およびDATALIST〜ENDLIST内に上記の文法以外の記述をすることはできません。\\ ==== PRINTBUTTON(|C|LC) <文字列式>, <数式 or 文字列式> ==== PRINTBUTTON命令はマウスでクリックできるボタンを生成するための命令です。\\ 書式としてはPRINTS命令に近いですが、第二引数としてクリックされたときに入力する数字または文字を指定します。 第一引数に改行コードが入っている場合オミットされ改行されません。\\ Emueraは"[300] セーブ"のように[]でくくられた数字とその前後の文字列を自動的にボタンに変換します。\\ このようなボタンを自動ではなく強制的に生成するための命令がPRINTBUTTONです。\\ この命令は例えば以下のような場合に有用です。\\ PRINT これでいい? [0] はい [1] いいえ INPUT このような行についてはEmueraはボタンを正しく認識できず、"これでいい? [0] はい"というボタンと"[1] いいえ"というボタンになってしまいます。\\ PRINTBUTTONを用いて書き直すと以下のようになります。\\ PRINTS "これでいい? " PRINTBUTTON "[0] はい", 0 PRINTS " " PRINTBUTTON "[1] いいえ", 1 INPUT (PRINT命令の代わりにPRINTSを使っていますがこれは半角スペースの数を明らかにするためです)\\ このようにすると"これでいい? "はボタンではなくなり、"[0] はい"と"[1] いいえ"だけがボタンになります。\\ なお、PRITNBUTTON命令では表示する文字列に[0]や[1]などが含まれていることは必須ではありませんが、対応する数字を全く表示しないとテンキーなどで操作している方を戸惑わせることになるでしょう。 従来通り[0]などを表記することを勧めます。\\ また、PRINTBUTTON命令では数字だけでなく文字列を入力するボタンを作成することができます。 そうして作成したボタンはINPUTS命令の実行時にクリックすることができます。\\ PRINTL 名前を入力してください。 PRINTBUTTON "[ほげほげ] ", "ほげほげ" PRINTBUTTON "[ぷげぷげ] ", "ぷげぷげ" PRINTBUTTON "[ふうばあ] ", "ふうばあ" INPUTS 括弧内のキーワードは文字を揃える位置を指定します。\\ * なし - 揃えません * C - PRINTCと同様に右側に揃えます * LC - PRINTLCと左に揃えます ==== PRINTPLAIN(|FORM) ==== 引数の文字列を平文として出力します。この時ボタン文字列(0など)があってもボタン化しません。\\ 括弧内のキーワードは引数タイプを指定します。\\ * なし - <文字列> * FORM - <書式付文字列> * CUSTOMDRAWLINE <文字列> ==== DRAWLINEFORM ==== 指定した文字列を使って1行の区切りを表示します。 DRAWLINEFORMではFORM構文に対応しています。\\ ==== REUSELASTLINE <書式付文字列> ==== 最終行を指定した書式付き文字列で書き換えるが、\\ これを使って書き換えた行は、次の行が追加されるとそれに置き換わる\\ 基本的にはINPUT、INPUTSのループ処理の中でのみ使用するもの\\ 引数はPRINTFORMと同様の書式を使用可\\ なお、REUSELASTLINE (この半角スペース必須)とすれば、警告文なしで空行にできます\\   $INPUT_LOOP   INPUT   IF RESULT != 0     ;!;CLEARLINE 1     ;!;REUSELASTLINE 無効ですよ     GOTO INPUT_LOOP   ENDIF のように、GOTO INPUT_LOOPの前にREUSELASTLINEを呼び出すと、\\ 前の入力が画面から消去され、次の入力は前の入力と同じ行に表示される\\ これによって、無効な入力が繰り返されても、行数が増えず、\\ 気づいたら選択肢が画面外に…なんて事態は防げる…はず\\ ちなみに@USERXXX系関数の条件分岐の最後に\\ (対象は@USERCOM、@USERSHOP、@USERABLUPの3つ)\\   ;!;ELSE     ;!;REUSELASTLINE   ENDIF とやっておくと…?\\ (Emuera専用なら;!;は必要なし)\\ ==== CLEARLINE <消す行数> ==== 指定した行数の文字列を削除します(行の数え方はLINECOUNTと同様です)\\ 行数はPRINTL等で改行が行われるまでのものを1つの行とします。\\ なお、長い文字列が複数行に分割されたものもまとめて1行として扱うので気をつけてください。\\ ==== PRINT_RECT <数式> ==== 行中に横幅がフォントサイズの引数%である長方形を表示します。\\ SETCOLOR命令によりフォント色と同様に色を変えられます。\\ HTML_PRINT命令のタグに相当します。\\ ==== PRINT_RECT <数式>, <数式>, <数式>, <数式> ==== 行中にx,y,横幅,縦幅がそれぞれ引数%である長方形を表示します。\\ SETCOLOR命令によりフォント色と同様に色を変えられます。\\ HTML_PRINT命令のタグに相当します。\\ ==== PRINT_SPACE <数式> ==== フォントサイズの引数%分だけ何も表示しないスペースを作ります。\\ HTML_PRINT命令のタグに相当します。\\ ==== SETCOLOR , , ==== ==== SETCOLOR ==== ==== RESETCOLOR ==== 文字色を指定した色に変更、適用はRESETCOLORが呼ばれるまで。\\ 指定方法はRGB形式になります\\ SETCOLORで指定した色はRESETCOLORでリセットすることができます\\ 現在の背景色はGETCOLORで、デフォルトの背景色はGETDEFCOLORで取得することができます。\\ 1.731以降ではSETCOLORに0xRRGGBB形式で指定できるようになりました。\\ SETCOLOR 255, 128, 0 SETCOLOR 0xFF8000 これはどちらの行も同じ意味になります。 GETCOLOR命令で取得できる値は後者です。\\ ==== SETBGCOLOR , , ==== ==== SETBGCOLOR ==== ==== RESETBGCOLOR ==== 背景色を指定した色に変更する命令です。\\ 基本的な仕様はSETCOLOR・RESETCOLORと同様ですが、\\ 安全のため変更後0.2秒以内に再変更する場合は0.2秒経過まで強制WAITになります。\\ 現在の背景色はGETBGCOLORで、デフォルトの背景色はGETDEFBGCOLORで取得することができます。\\ ==== SETCOLORBYNAME <文字列> ==== ==== SETBGCOLORBYNAME <文字列> ==== 定義済み色名からフォント表示色や背景色を指定する命令です。\\ 他の仕様はすべてSETCOLOR・SETBGCOLORと同様です。 引数は色名です。定義済み色名についてはKnownColor列挙体 に準拠しておりますので、そちらを参照してください。\\ ==== GETCOLOR ==== 現在使用している文字色コードをRESULT:0に代入します。\\ 戻り値は16進数で0xRRGGBBとなります。\\ 例えばオレンジ色(R,G,B) = (255, 128, 0)であれば0xFF8000(10進数で16744448)を返します。\\ 色と数字の対応はweb colorについて解説しているWebサイトを参考にするとよいでしょう。\\ 1.731での変更により、SETCOLOR命令もSETCOLOR 0xFF8000のような形式で指定できるようになりました。\\ ==== GETDEFCOLOR ==== コンフィグで指定している文字色コードをRESULT:0に代入します。\\ 基本的な仕様はGETCOLORと同様です。\\ ==== GETBGCOLOR ==== 現在使用している背景色コードをRESULT:0に代入します。\\ 基本的な仕様はGETCOLORと同様です。\\ ==== GETDEFBGCOLOR ==== コンフィグで指定している背景色コードをRESULT:0に代入します。\\ 基本的な仕様はGETCOLORと同様です。\\ ==== GETFOCUSCOLOR ==== コンフィグで指定している選択中文字色コードをRESULT:0に代入します。\\ 基本的な仕様はGETCOLORと同様です。\\ ==== FONTBOLD ==== ==== FONTITALIC ==== ==== FONTREGULAR ==== 以降の文字を指定したスタイルに変更する\\ BOLDとITALICは重複可(太字斜体)\\ REGULARを呼ぶと、太字・斜体指定が解除されます\\ ==== FONTSTYLE <数式> ====  FONTSTYLE以降の文字を指定したスタイルに変更します。\\  0であれば通常、1なら太字、2なら斜体、4なら打ち消し線、8なら下線が引かれます。\\  これらはビットごとに組み合わせることができます。\\  例えばFONTSTYLE 3なら太字かつ斜体になります。\\  FONTBOLD、FONTITALICは現在のスタイルに太字、斜体スタイルを加えます。\\  FONTREGULARはFONTSTYLE 0と等価です。つまり通常のスタイルに戻します。\\ FONTSTYLE 1 + 2 PRINTL 太字+斜体 FONTSTYLE 5 PRINTL 太字+打ち消し FONTITALIC PRINTL 太字+斜体+打ち消し FONTSTYLE 0 PRINTL 通常 <表示結果は実際に試してみてください>\\ ==== GETSTYLE ==== 現在のフォントのスタイル(太字、斜線など)をRESULT:0に代入します。\\ これはSETSTYLE命令で指定した値と同じです。\\ SETSTYLE命令が行われていない時は0を返します。\\ ==== CHKFONT <文字列式> ==== 指定された名前のフォントがインストールされているかどうかを調べます。\\ インストールされていれば1、されていなければ0がRESULT:0に代入されます。\\ 使用例はSETFONT命令を参照してください。\\ ==== SETFONT <文字列式> ==== SETFONT命令以降の文字列表示に指定された名前のフォントを用います。\\ 引数を省略、または空文字列を指定した場合、emuera.configに指定された標準のフォントに戻します。\\ 指定されたフォントがインストールされていない場合、代わりに"Microsoft Sans Serif"が使用されます。\\ インストールされていない可能性があるフォントを指定する場合はSETFONTの前にCHKFONT命令を行ってください。\\ PRINTL abc123あいう(標準フォント) CHKFONT "MS Pゴシック" IF RESULT SETFONT "MS Pゴシック" PRINTL abc123あいう(MS Pゴシック) ENDIF CHKFONT "MS 明朝" IF RESULT SETFONT "MS 明朝" PRINTL abc123あいう(MS 明朝) ENDIF STR:0 = MS P明朝 CHKFONT STR:0 IF RESULT SETFONT STR:0 PRINTL abc123あいう(MS P明朝) ENDIF SETFONT ==== GETFONT ==== 現在使用しているフォントの名前をRESULTS:0に代入します。\\ これはSETFONT命令で指定した名前と同じです。\\ SETFONT命令が行われていない時はemuera.configで指定されている標準のフォントの名前を代入します。\\ ==== FORCEKANA <数式> ==== 表示命令のひらがな・カタカナを指定します。\\ キーワード"K"を含む各種PRINT系命令で有効になります。\\ 引数で指定した値により、以下の影響があります。\\ * 0:変換を行わない * 1:ひらがな→カタカナ * 2:カタカナ→ひらがな(全角のみ) * 3:カタカナ→ひらがな(全角・半角両方とも) ==== ALIGNMENT <キーワード> ==== ALIGNMENT以降の行を指定した位置に揃えます。\\ キーワードには"LEFT"、"CENTER"、"RIGHT"のいずれかを指定します。\\ 通常の表示はALIGNMENT LEFTであり、左端に揃えられます。\\ ALIGNMENT CENTERによりタイトル画面のように中央に揃えることができます。\\ ALIGNMENTが適用されるのは改行された時点です。\\ ALIGNMENT RIGHT PRINT あああ ALIGNMENT CENTER PRINTL いいい ALIGNMENT LEFT このようにすると、"あああいいい"という文字列が中央揃えで表示されます。\\ 現在のALIGNMENTはCURRENTALIGNで取得することができます。\\ ==== CURRENTALIGN ==== 現在のALIGNMENTをRESULTS:0に代入します。\\ 返値はALIGNMENT命令で指定した文字列と同じです(大文字)。\\ ALIGNMENT命令が行われていない時は初期値のLEFTを返します。\\ ==== REDRAW <数式> ==== 描画制御命令です。\\ 引数に0を指定するとユーザーが入力を必要とするタイミングでのみ描画を行うようにします。\\ 引数に1を指定すると通常通り、コンフィグの"フレーム毎秒"で指定されたタイミングで描画を行います。\\ 引数に2を加えると(REDRAW 2やREDRAW 3など)、上記の効果に加え、REDRAW命令を行った瞬間に強制的に描画を行います。\\ 現在のREDRAW状態(0または1)はCURRENTREDRAWで取得することができます。\\ ==== CURRENTREDRAW ==== 現在のREDRAW状態をRESULT:0に代入します。\\ 返値は通常時は1、REDRAW命令を用いて描画を抑制した時は0になります。\\ ==== PRINTCPERLINE ==== コンフィグ"PRINTCを並べる数"で指定された数をRESULT:0に代入します。標準は3です。\\ ==== LINEISEMPTY ==== 現在PRINTしている行が空行かどうかを判断する命令です。\\ この命令を実行した時点で「PRINTL 」を行おうとした場合、\\ その結果がただの空行になる場合には1を、そうでない場合は0をRESULT:0に代入します。\\ PRINTC系で条件に応じたボタンを順次書き連ねる場合に、最後にこの命令を使用することで、\\ 表示されるボタンがあるかないかを判別し、なければ専用の表示をするといったことが可能です\\ ==== BARSTR <変数>, <最大値>, <長さ> ==== 与えられた引数と同一の引数のBAR命令で表示される文字列と同じ物をRESULTS:0に代入します。\\ ==== SKIPDISP <数値> ==== 以下、私家改造版更新履歴より、\\ PRINT等の画面出力命令およびWAIT、TWAITなどの命令を無視するフラグを設定する命令SKIPDISP追加  書式:SKIPDISP <数値>  引数:0   無視しないようにする     0以外 無視するようにする  内容:このフラグを立てると、PRINT等の出力が一切行われなくなる     また、このフラグが立ってる間にINPUTおよびINPUTSに達した場合は     ユーザーが何をすればいい知る術がないこと、また飛ばせば無限ループに入る可能性が高いため     警告文と対処法を明示した上でエラーになるようにしてあります   今一般に使われる口上の実装では口上の非表示が可能な場合、   表示と非表示でコマンドの結果が変わったり、動作が変わってしまう場合がある   そこで、これを立てた上で口上を呼び出せば、表示はされることなくそれ以外の処理が行われるため   表示/非表示で同じ動作を期待できる   INPUT/INPUTSがかぶる場合は上のNOSKIP〜ENDNOSKIPで囲んだり、   SKIPDISP 0しておいて、INPUT処理後に再度SKIPDISP 1するなりの対策があります(一応前者推奨)   ちなみに今無視するフラグが立ってるかはISSKIP()式中関数で取得できます ver1.808から、SIF文の直後に置いても動作するようになりました。 なお、SKIPDISPを使用すると引数に関係なくRESULT:0が0にリセットされますが仕様となります。\\ ==== NOSKIP ==== ==== ENDNOSKIP ==== 以下、私家改造版更新履歴より、 表示関係無視フラグを無視する区間を指定できるNOSKIP〜ENDNOSKIP実装   この2つで囲った区間はSKIPDISP 1の状態でも表示等される   主にINPUTが必要な場合に使用するとよい   また、この命令はSKIPDISPの状態に影響しないので、   SKIPDISPフラグが立ちうる環境下のコード(例えば表示/非表示のある口上関係)では   これを使うと、絶対に表示する必要がある場所をきちんと表示できるようになります ==== ISSKIP ==== SKIPDISPのフラグが0以外(PRINT等の出力を無視)なら1を、そうでなければ0をRESULT:0に代入します\\ ==== MOUSESKIP ==== 右クリックが押されてWAITスキップの状態になっているなら1を、そうでなければ0をRESULT:0に代入します\\ マクロ処理時のスキップ中は0を返します\\ マクロ処理のスキップと右クリックが競合した場合はマクロを優先し0を返します\\ 文字列操作・参照\\ ==== FORCEWAIT ==== 右クリック、マクロのスキップでスキップできないWAIT命令です。\\ この命令に達した時点でこれらのスキップ状態は解除されます。\\ ==== INPUT {<数値>} ==== ==== INPUTS {<文字列>} ==== eramakerと同様の命令ですが、引数により空文字列を入力された場合のデフォルト入力値を設定することができます。\\ 引数を省略し空文字列を入力した場合、従来と同様にINPUTは再入力、INPUTSはRESULTSに空文字列が代入され次の処理へ進みます。\\ === 基本の動作 === **INPUT** 数値入力を求めます。入力された数値はRESULT:0に代入されます。 **INPUTS** 文字入力を求めます。入力された文字列はRESULTS:0に代入されます。 ==== TINPUT <数値>, <数値>{, <数値>, <文字列>} ==== ==== TINPUTS <数値>, <文字列式>{, <数値>, <文字列>} ==== 制限時間のある入力受付命令です。 1番目の引数は制限時間(ms)ですが、100msより細かい値を設定しても正確な動作はできません。\\ 2番目の引数は時間切れ時のデフォルトのリターン値になります\\ 3番目の引数は残り時間を表示するかで0なら非表示、他は表示となります。省略した場合は1(表示)です。\\ 4番目の引数は時間切れ時に表示される文字列です。空文字列の場合はタイマー表示を消去して次の処理へ移ります。\\ なお、4番目の引数を設定した場合、3番目の引数は省略できません。\\ またTINPUTSにおいて、INPUTS同様にマクロ式を用いることができます。\\ 文字列として()を使用する場合、を用いてエスケープしてください。\\ ==== TWAIT <数値>, <数値> ==== 第一引数が制限時間、第二引数が入力受付フラグです。\\ 制限時間経過するまで動作を停止します\\ 実際の挙動は入力受付フラグの指定によって変化します\\ * 入力受付フラグ = 0:入力を受け付け、入力がなされると制限時間前でも次に進みます * 入力受付フラグ ≠ 0:入力を受け付けません(制限時間まで強制的に待たせることができます) ==== ONEINPUT {<数値>} ==== ==== ONEINPUTS {<文字列>} ==== 以下、私家改造版更新履歴より、\\ 一文字限定入力自動処理命令ONEINPUT、ONEINPUTS実装  書式:ONEINPUT or ONEINPUTS  内容:一文字のみの入力を受け付ける、入力すると自動的に次の処理に移る ペースト等を用いて複数桁の数字(複数の文字)を一度に貼りつけた場合、最初の桁(文字)のみが入力されたものとして処理されます。 INPUTやINPUTS同様、引数により空文字列を入力された場合のデフォルト入力値を設定することができます。 ただし、ONEINPUTで負の値を指定した場合や、ONEINPUTSで空文字列を指定した場合は、引数は無効となり、引数なしの場合と同じ挙動になります。 また、複数桁の数字(複数の文字)を引数とした場合、最初の桁(文字)のみがデフォルト入力値となります。 引数を省略し空文字列を入力した場合、通常と同様にONEINPUTは再入力、ONEINPUTSはRESULTSに空文字列が代入され次の処理へ進みます。 ONEINPUTSの場合、空文字列のままEnterを押しても空文字列を入力したとみなされます。 なお、これらの命令を利用した場合にはEmueraのCONFIG設定においてキーボードマクロを使用する設定になっていても、 うまく働かない現象が起こりますがそれは仕様です。 またONEINPUTSにおいて、INPUTS同様にマクロ式を用いることができます。 文字列として()を使用する場合、を用いてエスケープしてください。 ==== TONEINPUT <数値>, <数値>{, <数値>, <文字列>} ==== ==== TONEINPUTS <数値>, <文字列式>{, <数値>, <文字列>} ==== 引数はそれぞれTINPUT、TINPUTSと同じです。\\ それぞれONEINPUTとTINPUT、ONEINPUTSとTINPUTSの性質を併せ持つ入力受付命令です。\\ これらの命令を利用した場合にはEmueraのCONFIG設定においてキーボードマクロを使用する設定になっていても、\\ うまく働かない現象が起こりますがそれは仕様です。\\ またTONEINPUTSにおいて、INPUTS同様にマクロ式を用いることができます。\\ 文字列として()を使用する場合、を用いてエスケープしてください。\\ ==== WAITANYKEY ==== いずれかのキー入力、またはマウスのクリックを待つWAIT命令です。\\ WAITのONEINPUT版ともいえます。\\ ==== INPUTMOUSEKEY {int time} ==== INPUTMOUSEKEY命令はマウスやキーボードの入力を直接認識する命令です。\\ 引数はTINPUTのような時間切れ処理を行うまでの時間をミリ秒で指定します。\\ 引数を省略したか0以下を指定した場合には時間切れ処理は行われません。\\ この命令は、ONEINPUT等では捕捉できないファンクションキーや方向キー、PageUpキー等も入力として認識することができます。\\ 一方でこの命令による入力の受付待機中はESCキーや右クリックによるスキップ機能、マクロ機能、その他の機能が使用できず、単にESCキー等が押されたという結果のみ受け付けます。\\ また、この命令は時間切れ表示等を含めて一切のPRINT処理を行いません。\\ スキップ機能の実装や、入力を表示したい場合などはERB側で対応する必要があります。\\ 第2引数にミリ秒単位で数値を指定することにより、時間切れ処理が行われます。 INPUTMOUSEKEYの返り値は最大5つであり、RESULT:0, RESULT:1, RESULT:2, RESULT:3, RESULT:4 にそれぞれ代入されます。\\ RESULT:0 == 1; マウス押下が検出された\\ > RESULT:1 ;マウスボタン - 左ボタン0x100000、右ボタン0x200000、中ボタン0x400000。C#のSystem.Windows.Forms.MouseButtons列挙体の整数値 > RESULT:2 ;マウスX座標 クライアント領域の左下を基準とする。常に正の値になる。 > RESULT:3 ;マウスY座標 クライアント領域の左下を基準とする。常に負の値になる。 > RESULT:4 ;CBGSETBMAPが実行されており、クリック座標直下の色の不透明度が0xFFである時、色の0xRRGGBBを返す。該当しない場合は-1。 RESULT:0 == 2; マウスホイールの回転が検出された\\ > RESULT:1 ;ホイール量 > RESULT:2 ;マウスX座標 > RESULT:3 ;マウスY座標 RESULT:0 == 3; キーボード押下が検出された\\ > RESULT:1 ;押されたキーのコード。修飾コード(Alt,Ctrl,Shift)を含まない。KeyCode相当。C#のSystem.Windows.Forms.Keys列挙体の整数値 > RESULT:2 ;押されたキーのコード。修飾コードを含む。KeyData相当 RESULT:0 == 4; 時間切れにより終了した\\ マウスのボタンについては_VirtualKey.ERHのMB_LEFT〜MB_MIDDLEを、キーコードについては_VirtualKey.ERHのVK_〜を参照してください。\\ キーコードはGETKEY関数のものと共通です。\\ マウスホイールのホイール量は1や-1ではなく最低でも120など大きな値になるので注意してください。\\ また、Emueraの画面外にカーソルがある場合にホイールが検出されるかどうかはWindowsの設定次第でありEmuera側では変更できません。\\ 初期設定ではWindows8.1以前は検出されますがWindows10では画面外のホイールは検出されないようです。\\ ==== GETKEY int vkey ==== キーボード及びマウスボタンの状態を返します。\\ 引数で指定されるキーが押されていれば1、押されていなければ0を返します。\\ この関数はEmueraのウインドウがアクティブのときのみ1を返し、アクティブ状態でなければキー状態にかかわらず0を返します。\\ キーコードの数値と実際のキーの対応に関してはマイクロソフト社が提供するMSDNのGetKeyState()の項を参照してください。\\ ==== GETKEYTRIGGERED int vkey ==== GETKEYと同様にキーボード及びマウスボタンの状態を返します。\\ GETKEYは現在押されているかどうかを取得するのに対し、GETKEYTRIGGEREDは押された直後のみ1を返します。\\ すなわち継続して押し続けている場合はGETKEYは1を返しますが、GETKEYTRIGGERDは最初のみ1を返し以降は0を返します。\\ この関数はEmueraのウインドウがアクティブのときのみ1を返し、アクティブ状態でなければキー状態にかかわらず0を返します。\\ キーコードの数値と実際のキーの対応に関してはマイクロソフト社が提供するMSDNのGetKeyState()の項を参照してください。\\ ==== MOUSEX ==== ==== MOUSEY ==== マウスカーソルの現在のX座標またはY座標を取得します。\\ 座標はクライアント領域の左下位置を(0,0)とする相対位置であり、右方向がx軸の正、下方向がy軸の正です。\\ カーソルがクライアント領域内にある場合MOUSEYは負の値を返すことに注意してください。\\ クライアント領域の広さはCLIENTWIDTH、CLIENTHEIGHT関数によって取得できます。\\ (クライアント領域左上を基準とするY座標が必要なら、MOUSEY()+CLIENTHEIGHT()によって取得できます)\\ この関数はEmueraのウインドウがアクティブでなくても、また、マウスカーソルがウインドウ外であっても正常に動作します。\\ ==== ISACTIVE ==== Emueraのウインドウの状態を返します。\\ アクティブであれば1、アクティブでなければ0を返します。\\ ==== CLEARTEXTBOX ==== 以下、私家改造版更新履歴より、\\  ○入力欄を空にする命令CLEARTEXTBOX追加    書式:CLEARTEXTBOX    内容:最下部の入力欄のテキストを全て消去する ==== PRINTN ==== * 改行せずに入力待ち(WAIT)を行うPRINT命令 * 入力後は行を変えずにそのまま文字列の出力が続行される。 * 「0.2.4.9」時点ではオプションの設定を必要としないが、設定を実装する予定がある。