日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語 OpenVMS
|
目次 | 索引 |
SMG$SELECT_FROM_MENU の flags 引数の値として, SMG$M_REMOVE_ITEM を指定した場合には,メニュー内の項目を "再選択" することはできません。ただし,項目はメニュー内に残されます。また,その項目はメニューを格納した仮想ディスプレイの省略時の属性で表示されます。
このモードで省略時の選択項目を指定し,その項目がすでに選択されている場合には,メニュー内の最初の "選択可能な" 項目が強調表示されます。どの項目も選択可能でない場合には,エラーが戻されます。
SMG$SAVE_VIRTUAL_DISPLAY ルーチンは,仮想ディスプレイの内容をファイルに保存します。仮想ディスプレイを再作成するのに必要なテキスト,ビデオ属性,およびすべてのディスプレイ属性が保存されますが,メニュー,ビューポート,サブプロセスの内容は保存されません。
SMG$SAVE_VIRTUAL_DISPLAY ルーチンによって保存したファイルをプリントすることはできません。仮想ディスプレイを復元するには,SMG$LOAD_VIRTUAL_DISPLAY ルーチンを使用します。このルーチンは新しい仮想ディスプレイを作成し,その仮想ディスプレイに保存されているディスプレイの内容をロードします。新しい仮想ディスプレイはどのペーストボードにもペーストされない状態です。
SMG$SET_TERM_CHARACTERISTICS ルーチンは,指定されたペーストボードのターミナル属性を変更または検索します。このルーチンを使用すれば, 1 回のルーチン呼び出しで複数のターミナル属性を制御できます。
SMG$CREATE_VIRTUAL_DISPLAY ルーチンは,新規に作成された仮想ディスプレイに文字集合を設定するために,省略可能な引数 (
character-set ) を持っています。この引数を省略した場合は,SMG$DEFAULT_CHARACTER_SET 論理名が用いられます。
表 2-2 は,この論理名に定義できる等価名を示しています。
2.2.12 仮想ディスプレイの保存
2.2.13 ターミナル属性の変更
2.2.14 仮想ディスプレイに対する文字集合の設定
等価名 | 文字集合 (コードセット) |
---|---|
ASCII | ASCII文字集合 |
SPEC_GRAPHICS | DEC特殊文字集合 |
SUPPLEMENTAL | 補助文字集合 1 |
KANJI | DEC漢字文字集合 |
JIS_KANA | JISカタカナ文字集合 |
SDK | Super DEC 漢字コードセット |
この論理名が無効な文字集合を指していたり,定義されていなかった場合には,文字集合は未定義になります。
2.3 操作制御
この節では,特殊な操作モードを制御する日本語 SMG ルーチン ( 更新処理におけるタブの使用の制御,最低限の更新,およびバッファ処理を行なうルーチン ) について説明します。これらのモードを使用すれば,情報を実際に画面に書き込む方法を最適化できます。これらのモードを起動するには,SMG$CONTROL_MODE ルーチンを使用します。
通常,ユーザがこれらのモードを考慮する必要はありません。日本語 SMG は,文字が画面にただちに表示されるように出力を最適化します。しかし,一部のアプリケーションでは,これらのモード設定を利用しなければならないことがあります。この後の節では,これらの操作モードについて説明します。
2.3.1 最小限の更新
省略時の設定では,日本語 SMG は画面の中で変更された部分だけを再度書き直すことにより,画面に書き込む文字数をできるだけ少なくしようとします。しかし,日本語 SMG はこの方法とは異なる更新操作もサポートし,その操作では,変更によって影響を受けるすべての行が,最初に変更された文字から行の最後まで,すべて書き直されます。
2.3.2 バッファ操作
省略時の設定では,出力操作を実行すると,バッファが満杯になったときに画面を更新するのではなく,部分的に格納された多くの小さいバッファを漢字ターミナルに送信することにより,画面がただちに変更されます。これらの入出力トランザクションの数は,バッファ処理モードを有効に設定することにより最低限に抑えることができ,その結果,プログラムの実行速度を向上することができます。
バッファ処理モードでは,日本語 SMG はバッファが満杯になった場合にだけ,ターミナル・バッファを画面に書き込みます。したがって,結果が画面に表示されるまでに,複数の出力操作が実行される可能性があります。多くのアプリケーションではこのような遅延時間が認められないため,バッファ処理と組み合わせて使用するように, SMG$FLUSH_BUFFER という特殊なルーチンが準備されています。
SMG$FLUSH_BUFFER ルーチンは,そのバッファが満杯になったかどうかとは無関係に,バッファを漢字ターミナルに強制的に書き込みます。このルーチンは,通常はこのような出力の遅延を認めることができるものの,場合によっては画面をただちに更新しなければならないようなアプリケーションにとって役立ちます。常に画面を即時変更することが必要なアプリケーションの場合には,バッファ処理を無効に設定しておかなければなりません。
2.3.3 タブ
タブは更新操作をできるだけ少なくするために使用します。タブを使用する場合には,タブ・ストップが HP 指定の位置に設定されているかどうかを確認しなければなりません。ユーザが漢字ターミナルにどのようにタブを設定したかということとは無関係に,アプリケーションを実行したい場合には,タブを使用すべきではありません。
画面に出力されるタブはすべて,実際に画面に出力される前に,日本語SMGルーチンによって 8 つのスペースに変換されます。この規則には1つだけ例外があります。それは,SMG$CREATE_VIRTUAL_DISPLAY ルーチンを使用するときに,
display-attributes 引数を SMG$M_DISPLAY_CONTROLS ルーチンに設定した場合です。この場合には,タブ文字を 8 つのスペースとして解釈するのではなく,タブ文字がそのまま出力されます。
2.4 出力のバッチ処理
複雑なペーストボード・イメージを作成するときに,イメージ全体が完成した後でそのイメージを画面に表示したいことがあります。このような場合には,イメージを作成する途中では画面を空白のままにしておき,一連の作成操作をバッチ処理し,最終結果だけを画面に表示できます。
日本語 SMG には,ペーストボード・レベルで一連の操作をバッチ処理するための方法があります。この方法については,この後の節で説明します。
2.4.1 ペーストボード更新のバッチ処理
ペーストボード更新のバッチ処理は,SMG$BEGIN_PASTEBOARD_UPDATE ルーチンを呼び出し,複数の作成操作を実行し,最後に SMG$END_PASTEBOARD_UPDATE ルーチンを呼び出すことにより実行できます。 SMG$BEGIN_PASTEBOARD_UPDATE ルーチンは,出力操作を物理画面上ではなく,ペーストボード・バッファ内だけで反映します。 SMG$END_PASTEBOARD_UPDATE ルーチンを呼び出すと,ペーストボード・バッファは物理画面に書き込まれます。
SMG$BEGIN_PASTBOARD_UPDATE ルーチンと SMG$END_PASTEBOARD_UPDATE ルーチンは,カウンタを増分および減分します。このカウンタの値が 0 になると,ペーストボードに対する出力はただちに物理画面に送信されます。カウンタの値が 0 以外の場合には,出力操作はバッチ処理されます。 ペーストボード・バッチ処理レベル はカウンタの値に等しくなります。このカウンタ方式を使用すれば,サブルーチンは呼び出しプログラムのバッチ処理レベルを妨害せずに,バッチ処理を要求したり,バッチ処理をオフにすることができます。
目次 | 索引 |
|