|目次|前ページ|次ページ| ───────────────────────────────────── 14.コンボボックス(TComboBox)の使い方 ───────────────────────────────────── [1]コンボボックス(TComboBox)オブジェクトの作成 →共通ルーチン【ZVCMCMB】 @予期しない値がセットされていないようにローカル変数を削除します[D KILL^ZVCMSUB] Aイベントマスクを設定します、例では[V2EVENT^ZVCMCMB]ですが->適切に設定 Brectパラメタを作成します。[D SETRECT^ZVCMCMB] (x,y,w,h):位置サイズ情報(行桁サイズモードに設定後) (color):コントロールの色番号(Colorプロパティ) -->指定なしの場合デフォルトの色 (font):コントロールのフオント番号(Fontプロパティ) -->指定なしの場合(null)[font=498]のフオントをセット[SETRECTにおいて] -->0:指定の場合デフォルトのフオント (keycode):キーボードイベントを発生させる終了キーコードのセット -->0を指定した場合0番のキーセットを指定した意味 ※イベントマスク設定でキーボードイベントを有効に設定しないとキーボードイベントは発生しません (selno):初期状態で選択されている選択肢インデックス(1:先頭) -->0を指定した場合何も選択されていない意味 (その他のプロパティ):(zorder,TabOrder,TabStop)...は必要があれば設定します。 ※[D SETRECT^ZVCMCMB -> rectstrが作成される Cコンボボックスコントロールの中のリストに表示するを選択肢をeditパラメタに設定します。[editstr] ※[S editstr="選択肢-1$選択肢-2$選択肢-3$$"] D[D CREATE^ZVCMCMB]で使用されるパラメタを設定する ※[S cid=(1〜1023の一意の番号)] ※[S form=(1〜1023の親フォームのフォーム番号)] ※[S parent=(1〜1023の親コントロールのcid番号)] ※[S group=(0〜32767のグループ番号)] ※[S opt=(Style)] [10]opt -> 1:シンプルコンボボックス(エデットボックスの入力可)(Style=csSimple) マウスダブルclickによる選択完了と <Enter>キー等の終了キーコードで選択完了リスポンスが送信されてきます -> 2:ドロップダウンリストコンボボックス(エデットボックスの入力は不可)(Style=csDropDownList) マウスclickによる選択完了と <Enter>キー等の終了キーコードで選択完了リスポンスが送信されます -> 3:ドロップダウンコンボボックス(エデットボックスの入力可)(Style=csDropDown) マウスダブルclickによる選択完了と <Enter>キー等の終了キーコードで選択完了リスポンスが送信されます ※[D CREATE^ZVCMCMB]コントロールオブジェクトの作成 E作成後リストの中に表示する選択肢を追加する。 ※[S cid=(1〜1023の一意の番号)] ※[S editstr="選択肢-1$選択肢-2$選択肢-3$$"] ※[D APPEND^ZVCMCMB]コントロールの中に表示する選択肢を追加 F作成後エデットボックスの中に表示するテキストを変更する。 ※[S cid=(1〜1023の一意の番号)] ※[S editstr="文字列"] ※[D TEXT^ZVCMCMB]エデットコントロールのテキストを変更する Gイベント応答メッセージからエデットボックスの中に表示されているテキストを取得する ※イベント種別=通常フォーカスを失った時(11)と選択された(27)とキーボードイベントで処理します ※イベント応答メッセージを読み込む[S RESP=$$ReadMsg^ZVCMSUB(Rtail) ※読み込んだ(受信)イベント応答メッセージを分解する[D VCMRESP^ZVCMSUB] ※(Revent2):イベント種別 ※(Rselno):選択された選択肢インデックス(1:先頭) ※(Rselcnt):編集ボックスの文字列の文字数[2008-4-4] ※(Rmain):編集ボックスの文字列 ※(Rkeycode):キーボードイベント時仮想キーコード ※(Rshift):シフト状態 0:無し 1:シフト 2:コントロール 4:<ALT>の組み合わせ ───────────────────────────────────── [2]コンボボックス(TComboBox)オブジェクトのイベント →共通ルーチン【ZVCMEVENT】 →共通ルーチン【ZVCMEVENT7】応答イベントコード定数 ───────────────────────────────────── ◆ イベントマスクを設定(応答を可にする) ※イベント設定変数を初期化→ D CLEAR^ZVCMEVENT ───────────────────────────────────── mask0= 2 : (1)マウス左クリックイベント応答(ビット1) ※イベント設定変数を設定 → D CLICK^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Click],[Revent1=EV1Click] ───────────────────────────────────── mask0= 4 : (2)マウス右クリック(ポップアップ)イベント応答(ビット2) ※イベント設定変数を設定 → D POPUP^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2RClick],[Revent1=EV1Popup] ───────────────────────────────────── mask0= 8 : (3)キーボードイベント応答(ビット3) ※イベント設定変数を設定 → D KEYBORD^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Keybord],[Revent1=EV1Keybord] ───────────────────────────────────── mask1= 8 : (11)フォーカスを失う時応答(ビット3) ※イベント設定変数を設定 → D KILLFOCUS^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Exit],[Revent1=EV1Exit] ───────────────────────────────────── mask1= 16 : (12)フォーカスを得る時応答(ビット4) ※イベント設定変数を設定 → D SETFOCUS^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Enter],[Revent1=EV1Enter] ───────────────────────────────────── mask2= 64 : (22)マウス左ダブルクリック応答(ビット6) ※イベント設定変数を設定 → D LEFTDBL^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2DblClick],[Revent1=EV1DblClick] ───────────────────────────────────── mask3= 1 : (24)タブの変更/値が変更等(Change)(ビット0) ◆◆ イベントが頻繁に発生しますのでなるべく発生しない設定にしておく ◆◆ ※イベント設定変数を設定 → D CHANGE^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Change],[Revent1=EV1Other] ───────────────────────────────────── mask3= 8 : (27)選択された(Select)(ビット3)%%%[2007-10-12]%%% ※イベント設定変数を設定 → D SELECT^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Select],[Revent1=EV1Other] ───────────────────────────────────── ※イベントマスクを設定 → D SETEVENT^ZVCMEVENT ───────────────────────────────────── [3] ZVCSCBA --> ※ 少量の選択肢をデータベースからコンボボックスに全件表示します。 ただし添字の異なった次元にデータを持つ場合には使用出来ません <<<入力変数>>> ※※※ テーブルに関する情報変数 ※※※ TTYPE => 定型テーブル名と添字の深さ TNAMEとLEVEL,SUBSCR(i) は (場合によってはPOSも)自動的に決定されます ※※他の入力変数は指定した値がそのまま有効です null/<undef>の時はTNAME,LEVELで指定します TNAME => 汎用テーブル名(グローバル名) ex. LIST TUCI => テーブルuci TVOL => テーブルvol LEVEL => テーブルグローバルの添字の深さ(次元)1,2,3... SUBSCR(i) => グローバルの添字の文字列(固定定数) ex. LEVEL=3 ならば SUBSCR(1)とSUBSCR(2)を設定する ※※※ コンボボックス表示に関する情報変数 ※※※ POS => テーブル名称文字列の位置($P)デリミタの何番目か DELIM => デリミタ文字(^)がデフォルト) TOP => コンボボックスの上端の行位置 LEFT => コンボボックスの左端の桁位置 WIDTH => コンボボックスの幅 HEIGHT=> コンボボックスの高さ id -> VCM control id番号 PARENT -> 親のフォームcid FORM -> フォーム番号 GROUP -> グループ番号 -----<<<リストボックスに1回に全件表示する>>>-------- INITSTR -> コンボボックスに初期表示する文字列(入力結果) OPT --> 1:シンプルコンボボックス(結果=INITSTR) 2:ドロップダウンリスト(結果=INITSTR と SELECT) 3:ドロップダウン(結果=INITSTR) SELECT -> 予め選択された選択肢の添字(LEVEL)(選択結果) -----<<<以下RECT,opt,pm1,...パラメタを参照>>>-------- font -> font番号 color -> 色番号 パラメタ他にもあります ───────────────────────────────────── [使い方] ※ <<<ローカル変数初期化>>> D KILL^ZVCSCBA ※ <<<作成時呼び出し>>> D CREATE^ZVCSCBA ※ <<<選択時呼び出し>>> D SELECTED^ZVCSCBA ※ <<<フォーカスを失った時呼び出し>>> D KILLFOCUS^ZVCSCBA ※ <<<廃棄時呼び出し>>> D DESTROY^ZVCSCBA ※ラベル(TEST)から(CREATE)の前迄は、使い方のサンプルです。 ※ラベル(CREATE)以降は、<<<共通サブルーチン部>>>です。 ※ご注意[cid=990,991,992,993,994は予約されています] ※このルーチンをコピーして自分で都合良く変更しても結構です。 ───────────────────────────────────── [4] ZVCSCBB --> ※※※多量のデータベースからコンボボックスに一部分表示します ただし添字の異なった次元にデータを持つ場合には 使用出来ません <<<入力変数>>> ※※※ テーブルに関する情報変数 ※※※ TTYPE => 定型テーブル名と添字の深さ TNAMEとLEVEL,SUBSCR(i) は (場合によってはPOSも)自動的に決定されます ※※他の入力変数は指定した値がそのまま有効です null/<undef>の時はTNAME,LEVELで指定します TNAME => 汎用テーブル名(グローバル名) ex. LIST TUCI => テーブルuci TVOL => テーブルvol LEVEL => テーブルグローバルの添字の深さ(次元)1,2,3... SUBSCR(i) => グローバルの添字の文字列(固定定数) ex. LEVEL=3 ならば SUBSCR(1)とSUBSCR(2)を設定する ※※※ コンボボックス表示に関する情報変数 ※※※ POS => テーブル名称文字列の位置($P)デリミタの何番目か DELIM => デリミタ文字(^)がデフォルト) TOP => コンボボックスの上端の行位置 LEFT => コンボボックスの左端の桁位置 WIDTH => コンボボックスの幅 HEIGHT=> コンボボックスの高さ id -> VCM control id番号 PARENT -> 親のフォームcid FORM -> フォーム番号 GROUP -> グループ番 READCNT -> コンボボックスに1回に表示する選択肢の数 INITSTR -> コンボボックスに初期表示する文字列(入力結果) OPT --> 1:シンプルコンボボックス(結果=INITSTR) 2:ドロップダウンリスト(結果=INITSTR と SELECT) 3:ドロップダウン(結果=INITSTR) SELECT -> 予め選択された選択肢の添字(LEVEL)(選択結果) -----<<<以下RECT,opt,pm1,...パラメタを参照>>>-------- font -> font番号 color -> 色番号 パラメタ他にもあります ───────────────────────────────────── [使い方] ※ <<<ローカル変数初期化>>> D KILL^ZVCSCBB ※ <<<呼び出し>>> D CREATE^ZVCSCBB ※ <<<選択時呼び出し>>> D SELECTED^ZVCSCBB ※ <<<フォーカスを失った時呼び出し>>> D KILLFOCUS^ZVCSCBB ※ <<<廃棄時呼び出し>>> D DESTROY^ZVCSCBB ※ <<<パラメタ再設定>>> D SETUPPM^ZVCSCBB ※ <<<操作不能設定>>> D DISGRP^ZVCSCBB ※ <<<操作可能設定>>> D ENAGRP^ZVCSCBB ※ <<<先頭ページ表示>>> D TOPPG^ZVCSCBB ※ <<<前ページ表示>>> D PREVPG^ZVCSCBB ※ <<<次ページ表示>>> D NEXTPG^ZVCSCBB ※ <<<末尾ページ表示>>> D TOPPG^ZVCSCBB ※ラベル(TEST)から(CREATE)の前迄は、使い方のサンプルです。 ※ラベル(CREATE)以降は、<<<共通サブルーチン部>>>です。 ※ご注意[cid=990,991,992,993,994は予約されています] ※このルーチンをコピーして自分で都合良く変更しても結構です。 ───────────────────────────────────── ─────────────────────────────────── 14-1 |目次|前ページ|次ページ|