|目次前ページ次ページ|
─────────────────────────────────────
44.バリューリストエディタ(TValueListEditor)の使い方 
─────────────────────────────────────
 [1]バリューリストエディタ(TValueListEditor)オブジェクトの作成
      →共通ルーチン【ZVCMVLS】【ZVCMVLS2】【ZVCMVLS3】 
─────────────────────────────────────
  TValueListEditorクラスを使うとユーザーはName=Valueという形式の文字列から
  構成される文字列リストを編集できるようになります。
  デフォルトでは,「Key」という見出しの列に名前が, 
  「Value」という見出しの列に値が表示されます。 
  ただし,これらのラベルはカスタマイズ可能です。 
  プログラマは,ユーザーが Key 列の文字列を選択,追加, 
  または編集できるかどうかを制御できます。 
  Value 列の各エントリでは,ユーザーは文字列の編集や, 
  値を選択するためのドロップダウンリストの指定, 
  あるいは値を編集可能なダイアログの提供を行うことができます。 
─────────────────────────────────────
  @予期しない値がセットされていないようにローカル変数を削除します[D KILL^ZVCMSUB] 
  Aイベントマスクを設定します、例では[V2EVENT^ZVCMVLS]ですが->適切に設定 
  Brectパラメタを作成します。[D SETRECT^ZVCMVLS] 
     (x,y,w,h):位置サイズ情報(行桁サイズモードに設定後) 
     (color):コントロールの色番号(Colorプロパティ) 
     -->指定なしの場合デフォルトの色 
     (font):コントロールのフオント番号(Fontプロパティ) 
     -->指定なしの場合(null)[font=498]のフオントをセット[SETRECTにおいて] 
     -->0:指定の場合デフォルトのフオント 
     (keycode):キーボードイベントを発生させる終了キーコードのセット 
     -->0を指定した場合0番のキーセットを指定した意味 
     ※イベントマスク設定でキーボードイベントを有効に設定しないとキーボードイベントは発生しません 
     (その他のプロパティ):(zorder,TabOrder,TabStop)...は必要があれば設定します。 
     ※[D SETRECT^ZVCMVLS -> rectstrが作成される
  [C-1]グリッド作成情報-1をeditパラメタに設定します。[editstr] 
     -->ローカル変数を削除します[D KILLEDIT^ZVCMVLS]  
     ※[S defwidth=(明示的にサイズ変更されていない全ての列の幅(桁数)小数点可)]
     ※[S width=(各Columnの幅(;でColumn数分指定)] 
        <- vcomライン数で指定(小数点可) 
        --> インデックス(0)の幅;インデックス(1)の幅;...;  
     ※[S height=(デフォルトのRowの高さ)] 
        <- vcomライン数で指定(小数点可) 
     ※[S scroll=スクロールバーの指定] 
        --> 1:無し 2:水平方向 3:垂直方向 4:両方(デフォルト) 
     ※[S Lindex=左端に表示されるスクロールするColumnのインデックス(0,1,2,...)](LeftCol) 
     ※[S Tindex=上端に表示されるスクロールするRowのインデックス(0,1,2,...)](TopRow) 
     ※[S Fcolor=スクロールしない固定部の色](FixedColor) 
        --> 色コード参照 
     ※[S editmode=エデットモードの指定](Options<<goEditing) 
        --> 1:エデットモード null:参照のみ 
     ※[S options=オプションの指定(付加)(;で区切って複数指定)](Options) 
        --> オプション;オプション;オプション;... 
            1:固定列を分ける垂直線が描画される(goFixedVertLine) 
            2:固定行を分ける水平線が描画される(goFixedHorzLine) 
            3:スクロール可能列を分ける垂直線が描画される(goVertLine) 
            4:スクロール可能行を分ける水平線が描画される(goHorzLine) 
            5:各セルの範囲を一度に選択できる(goRangeSelect) 
            6:入力フォーカスのあるセルは特別な背景色で描画(goDrawFocusSelected) 
            7:スクロール可能列は個別にサイズ変更できる(goRowSizing) 
            8:スクロール可能行は個別にサイズ変更できる(goColSizing) 
            9:スクロール可能列は個別にマウスで移動できる(goRowMoving) 
           10:スクロール可能行は個別にマウスで移動できる(goColMoving) 
           11:セルの内容を変更できる(goEditing) 
           12:[Tab]および[Shift]+[Tab]キーで各セル間を移動できる(goTabs) 
           13:各セルではなく行全体を選択する(goRowSelect) 
           14:グリッドは編集モードにロックされる(goAlwaysShowEditor) 
           15:スクロールボックスをドラグ中グリッドイメージが更新される(goThumbTracking) 
     ※[S delopts=オプションの指定(削除)(;で区切って複数指定) 
        --> オプション;オプション;オプション;... 
     ※[S respkeys=各行の左からのキーの個数(1)] 
     ※[D SETEDIT^ZVCMVLS]グリッド作成情報を作成
     ※[S editstr=EDITSTR]
  [C-2]グリッド作成情報-2をpm1パラメタに設定します。[pm1str] 
     ※[S DisplayOptions=(バリューリストエディタの概観の属性(1;2;3)の様に複数指定可)]
        --> 1:先頭行はキャプションを表示する固定行(非スクロール)(doColumnTitle) 
        --> 2:エディタをサイズ変更すると列幅に完全に収まる様に自動調整(doAutoColResize) 
        --> 3:キー列は固定されている(サイズ変更すると値列のみ変更)(doKeyColFixed) 
     ※[S DropDownRows=(選択リストを備えた値に表示されるドロップダウンリストの長さ)]
        -->デフォルト値=8
     ※[S KeyOptions=(ユーザのキーストロークに応答する方法(1;2;3)の様に複数指定可)]
        --> 1:キー列の値を編集出来る(<<keyEdit) 
        --> 2:新しいキー/値の列を追加出来る(<<keyadd) 
        --> 3:<delete>キーでキー/値の列を削除出来る(<<keyDelete) 
        --> 4:重複名の名前キー/値の列を作成出来ない(例外発生)(<<keyUnique) 
     ※[S KeyCaption=(キー列に表示タイトルを指定する)(TitleCaptions->Strings[0])]
     ※[S ValueCaption=(値列に表示タイトルを指定する)(TitleCaptions->Strings[1])]
     ※[D SETPM1^ZVCMVLS]グリッド作成情報を作成
     ※[S pm1str=PM1STR]
  D[D CREATE^ZVCMGRD]で使用されるパラメタを設定する 
     ※[S cid=(1〜1023の一意の番号)]
     ※[S form=(1〜1023の親フォームのフォーム番号)]
     ※[S parent=(1〜1023の親コントロールのcid番号)]
     ※[S group=(0〜32767のグループ番号)]
     ※[S editstr=(バリューリストエディタ作成パラメタ-1)]
     ※[S pm1str=(バリューリストエディタ作成パラメタ-2)]
     ※[D CREATE^ZVCMVLS]コントロールオブジェクトの作成
  E作成後バリューリストエディタコントロールの中に表示する表データを追加する。
     ※[S cid=(1〜1023の一意の番号)]
     ※[S start=開始rowインデックス(0,1,2,3,...)]
     ※[D APPEND^ZVCMVLS2]コントロールの中に表示するデータを追加
     ※[W "キー文字列-0=値文字列-0"_$C(13)_$C(10)]
     ※[W "..."]
     ※[W "キー文字列-n=値文字列-n"_$C(13)_$C(10)]
     ※[W $C(26)
  Fイベント応答メッセージからコントロールの中に選択されているセルを取得する
     ※イベント種別=セルが選択イベントと編集されるイベントで処理します
     ※イベント応答メッセージを読み込む[S RESP=$$ReadMsg^ZVCMSUB(Rtail)
     ※読み込んだ(受信)イベント応答メッセージを分解する[D VCMRESP^ZVCMSUB]
     ※(Revent2):イベント種別
     ※(Rselno):カレントカラム(桁)【最新の選択情報】
     ※(Rselcnt):カレントロー(行)【最新の選択情報】 
     ※(Rmain):カレントセルの文字列
     ※[Rsub]:null 
     ※[Roption]:選択セルの矩形(左端;上端;右端;下端;Col数;Row数)(0,1,2...の値) 
    --->グリッドのセルが選択されたイベント応答時[選択矩形情報は選択される前の情報]
    --->Col数;Row数は固定部とスクロール可能なものを含みます 
     ※(Rkeycode):キーボードイベント時仮想キーコード
     ※(Rshift):シフト状態 0:無し 1:シフト 2:コントロール 4:<ALT>の組み合わせ 
※【(61)左上端のセルが変更されたイベント】の場合は 
     ※[Rselno] = 左端カラム(桁) 
     ※[Rselcnt] = 上端ロー(行) 
     ※[Rmain] = 左上端セルの文字列 
  G【留意点】コマンドに対する【アンサー応答メッセージ】が送信されてくるものがあります
     ※D STRINGLIST^ZVCMVLS3->選択リストに表示する項目リストをストリングリストから設定
     ※D LOADFILE^ZVCMVLS3->テキストファイルから項目リストを取得する 
     ※D SAVEFILE^ZVCMVLS3->項目リストをテキストファイルに保存する 
     ※D LOADSTREAM^ZVCMVLS3->選択リストをストリームから読み込み 
     ※D SAVESTREAM^ZVCMVLS3->選択リストをストリームに保存 
  HPickList[選択肢リスト]を表示するには以下のようにします 
     S cid=xxx,editstr="$3$$",pos=nnn D ITEMPROP^ZVCMVLS2->[選択肢リストを表示出来る]
     S cid=xxx,editstr="選択肢-1$選択肢-2$選択肢-3$",pos=nnn D PICKLIST^ZVCMVLS2
    またはストリングリストオブジェクトを作成しておき  
     S cid=xxx,srccid=yyy,pos=nnn D STRINGLIST^ZVCMVLS3
─────────────────────────────────────
 [2]バリューリストエディタ(TValueListEditor)オブジェクトのイベント
      →共通ルーチン【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] 
─────────────────────────────────────
mask0= 128 : (7)グリッドのセルが選択された(ビット7)[選択矩形情報は選択される前の情報]  
 ※イベント設定変数を設定  →  D SELECTCELL^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2SelCell],[Revent1=EV1SellCell] 
─────────────────────────────────────
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] 
─────────────────────────────────────
mask7= 1 : (56)文字列が変更された(ValueList)(ビット0)(StringsChange) 
      --> 文字列リスト内の名前または値が変更された直後【発生しない】 
 ※イベント設定変数を設定  →  D STRINGCHANGE^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2StringsCng],[Revent1=EV1Other] 
─────────────────────────────────────
mask7= 2 : (57)編集される(ValueList)(ビット1)(SetEditText)【頻繁に発生】
      --> ユーザがセルの値を編集した時(または値セルのカレント位置を変更した) 
      --> [セルが選択されたイベント]の後に選択される前の編集されたセルのイベントが発生します 
 ※イベント設定変数を設定  →  D SETEDITTEXT^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2SetEdit],[Revent1=EV1Other] 
─────────────────────────────────────
mask7= 4 : (58)ローが移動(ValueList)(ビット2)(RowMoved) 
      --> グリッド内の行の位置が変更された時(Optionプロパティで可能設定) 
 ※イベント設定変数を設定  →  D ROWMOVED^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2RowMoved],[Revent1=EV1Other] 
─────────────────────────────────────
mask7= 32 : (61)左上端のセルが変更された(ValueList)(ビット5)(TopLeftChanged) 
      --> グリッド内の非固定セルがスクロールされた時 
 ※イベント設定変数を設定  →  D TOPLEFTCHANGE^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2TopLeftCng],[Revent1=EV1Other] 
─────────────────────────────────────
mask7= 64 : (62)編集ボタンがクリック(ValueList)(ビット6)(EditButtonClick) 
      --> ユーザがセル上の省略符号ボタンをクリックか 
          省略符号ボタン付きの値セルにフォーカスがある時[ctrl]+[Enter]を押す 
 ※イベント設定変数を設定  →  D EDITBTNCLICK^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2EditBtnClc],[Revent1=EV1Other] 
─────────────────────────────────────
mask7= 128 : (63)セルの編集を終了した(ValueList)(ビット7)(Validate) 
      --> フォーカスがセルから離れると発生【編集完了時に発生】 
 ※イベント設定変数を設定  →  D VALIDATE^ZVCMEVENT 
 ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Validate],[Revent1=EV1Other] 
─────────────────────────────────────
 ※イベントマスクを設定       →  D SETEVENT^ZVCMEVENT 
───────────────────────────────────
               44-1
     |目次前ページ次ページ