|目次|前ページ|次ページ| ───────────────────────────────────── ■ プログラムヒント[2008-4-10] ───────────────────────────────────── ────────────────────────────── ■ 従来VT端末画面とVCMコントロールとの併用時の考慮 ────────────────────────────── ※【この方法では】⇒ 既存のプログラムのビジネスロジックが流用出来ることが考えられます @従来のVT画面表示および入力をします。 Aビジュアルコントロールの操作モードに移行する際の手順。 ◆キーボード入力を禁止する【デバグ時はしない】⇒ <ESC>[2h ◆テキストカーソルを消去する【デバグ時はしない】⇒ <ESC>[?25l ◆ビジュアルコントロールを作成表示フォーカスする⇒ VCMコマンド ◆ボタン,フォームクローズ,キーボード,クリック等のイベントで終了をする⇒ イベント処理 ◆必要ならばVT画面にフォーカスする⇒ <ESC>[256W ◆テキストカーソルを表示する⇒ <ESC>[?25h ◆キーボード入力を許可する⇒ <ESC>[2l B従来のVT画面表示および入力に戻ります。 ※【デバグ時】⇒ 別フォームにすればVT画面にデバグ用のコマンド、イベントが見やすい ────────────────────────────── ■ VT端末画面サイズとVCMコントロールのサイズ,フォントの考慮 ────────────────────────────── @従来のVT画面フォントサイズがVCMの行桁サイズとある種のフォントに影響をします。 ◆VT画面フォントと表示桁行数内にキャプションの無いフォームを貼り付けます ◆桁行単位(小数点可)で位置サイズを指定します ◆VCMコントロールのフォントは固定サイズも指定できますが ◆VT画面フォントサイズより少しだけ小さいフォントを指定出来ます ◆端末によって画面解像度が異なる場合は注意が必要です AVCM画面に移行する直前にVT画面フォントサイズを変更する。 ◆VCMコントロールのサイズを規定するため【D VCOMFONT^ZVCMFNT】で変更出来ます ◆ビジュアルコントロールを作成表示フォーカスする⇒ VCMコマンド ◆VCM画面に戻ったらをVT画面フォントサイズを復元するため【D VCOMRESET^ZVCMFNT】で復元出来ます ────────────────────────────── ■ VCMコントロールのイベントの考慮 ────────────────────────────── ◆パフォーマンスに影響しますので不必要なイベントは発生させない ◆【^ZVCM999】に記載されているものから最適を使用できます ◆さらに設定と発生イベント【^ZVCMEVENT】【^ZVCMEVENT7】を参考にしてください ◆VCMコントロール表示を終了させるイベントを選択する ◆同じフォーム上にボタンと組み合わせるとボタンのイベントと状態取得のみで値を取得出来ます ────────────────────────────── ■ $文字の扱いの考慮 ────────────────────────────── ◆編集ボックスやリストボックスの選択肢に$文字が含まれていると注意が必要です ◆編集ボックスやコンボボックスでは$と^は入力が禁止されています ◆オプション設定で$と^を入力可能に出来ます ◆イベントや応答に$が含まれていても$*$が含まれていなければRmainが取得出来ます ◆$*$が含まれている場合は編集番号やパラメタ領域を経由して取得が出来ます ────────────────────────────── ■ コントロールコードの扱いの考慮 ────────────────────────────── ◆表示文字列にコントロールコードが含まれている場合は?に変換されることがあります ────────────────────────────── ■ メモとリッチエデイットの文字列取得の考慮 ────────────────────────────── ◆イベントのRmainに文字列を取得するかどうかはオプション設定に依ります ◆イベントのRmainに文字列が返される場合行の区切りは<LF>1個です ◆追加のコマンドでパラメタ域経由で取得する場合は<CR><LF>です ◆32767文字を超える場合はストリングリスト経由で部分的に取得します ────────────────────────────── ■ VT画面の行桁サイズとフォント変更 ────────────────────────────── ◆VT画面の行桁サイズとフォントはVCMコントロールの位置サイズに影響します ※起動時のサイズではなくフォームコントロールの作成時に計算されます @【D VCOMFONT^ZVCMFNT】VT画面のフォントを変更します <ESC>%78;fontname;fontsize;fontwidth;fontheight;;; sp F A【D VCOMRESET^ZVCMFNT】VT画面のフォントを初期状態に戻します <ESC>%78;0;;; sp F B【D WIDESCREEN^ZVCMFNT】VT画面の表示行桁数を変更します <ESC>%73;height;width;font;;; sp F C【D NORMALSCREEN^ZVCMFNT】VT画面の表示行桁数を25x80に戻します <ESC>%73;0;0;0;;; sp F ◆VT画面の行桁サイズとフォント変更の処理手順 [1]D VCOMFONT^ZVCMFNT でVT画面のフォントを変更します [2]S param=2 D VCOMWINDOW^ZVCMWND でVT画面をアイコン化します(ポップ窓の場合) [3]VCMコントロールを作成表示します [4]VCMコントロールを廃棄します [5]S param=1 D VCOMWINDOW^ZVCMWND でVT画面を復元します(アイコン化した場合) [6]D VCOMRESET^ZVCMFNT でVT画面のフォントを初期状態に戻します [5]VT画面にフォーカスする(<ESC>[256W) ────────────────────────────── ■ キーボードイベントの発生を指定する方法 ────────────────────────────── ◆各コントロールをD CREATE する直前のイベントマスクによる [1]キーボードイベントを有効に設定しておく [2]D SETRECT をする際に、keycode=0,1,2,3,4,...を設定しておく [3]<esc>%control;10;cid;keycode;;;; sp M で再設定する [4]任意のキーコードとシフト状態を指定する <esc>%control;11;cid;edit;;; sp M edit -> (1)key1 ; shift1 $ (2)key2 ; shift2 $ ... $ シフト状態 -> 0:シフト無 1:シフト 2:コントロール 4:alt 255:全て [*]発生したイベントは,cid,control,イベント種別,keycode,shiftで判定できます。 ────────────────────────────── ■ フォームを消去または廃棄した後のイベント処理 ────────────────────────────── @ボタン、キーイベント、クリック等のイベントをプログラムが受け取る Aプログラムは、フォームを消去または廃棄する Bごく稀にフォームを消去または廃棄する直前に次のイベントが発生している場合があります C次のイベントは同期モードの場合メッセージスタックに溜まっています D【D CLEARMSG^ZVCMSYN】を呼び出すとメッセージスタックのイベントは消去されます ANSWER <-- このコマンドの応答を受け取る(1)受けない(0) Rtail <-- メッセージ終端文字 ※<esc>%1010;9;ANSWER;;; SP M E次のフォームを開く際にメッセージスタックをクリアするのも有効な方法です ※サンプルプログラムではフォームを開く直前にクリアしています。 Fアンサー応答を受け取るコマンドの応答はメッセージスタックを経由しません ※イベントを要求しない限りコマンドの応答が正常に受け取れます Gプッシュボタンにアクション動作を指定してフォームを操作不可、削除する方法 ※プッシュボタンをクリック又はキーボードイベントと同時に次の操作が出来なく なります。(次のイベントは発生しない) ────────────────────────────── ■ 各コントロールのフォント設定 ────────────────────────────── @各コントロールオブジェクトを作成する時に位置サイズ情報にフォント管理番号が指定出来ます Aフォント管理番号は予め用意されているものと新たにプロパテイを設定して作成する場合があります Bコントロールオブジェクトを作成した後にフォントプロパテイの一部を変更することが出来ます ※ <esc>%control;39;cid;edit;;;; sp M ※ D FONTALTER^ZVCMALL パラメタについては【フォントの変更シーケンス】を参照 ※ 各コントロールの共通関数の D FONTALTER エントリを呼び出す ────────────────────────────────── 77-1 |目次|前ページ|次ページ|