|目次|前ページ|次ページ| ───────────────────────────────────── 41.ドローグリッド(TDrawGrid)の使い方 ───────────────────────────────────── [1]ドローグリッド(TDrawGrid)オブジェクトの作成 →共通ルーチン【ZVCMDRG】【ZVCMDRG2】【ZVCMDRG3】 @予期しない値がセットされていないようにローカル変数を削除します[D KILL^ZVCMSUB] Aイベントマスクを設定します、例では[V2EVENT^ZVCMDRG]ですが->適切に設定 Brectパラメタを作成します。[D SETRECT^ZVCMDRG] (x,y,w,h):位置サイズ情報(行桁サイズモードに設定後) (color):コントロールの色番号(Colorプロパティ) -->指定なしの場合デフォルトの色 (font):コントロールのフオント番号(Fontプロパティ) -->指定なしの場合(null)[font=498]のフオントをセット[SETRECTにおいて] -->0:指定の場合デフォルトのフオント (keycode):キーボードイベントを発生させる終了キーコードのセット -->0を指定した場合0番のキーセットを指定した意味 ※イベントマスク設定でキーボードイベントを有効に設定しないとキーボードイベントは発生しません (その他のプロパティ):(zorder,TabOrder,TabStop)...は必要があれば設定します。 ※[D SETRECT^ZVCMGRD -> rectstrが作成される C グリッド作成情報をeditパラメタに設定します。[editstr] ※[S defwidth=(明示的にサイズ変更されていない全ての列の幅(桁数)小数点可)] ※[S width=(各Columnの幅(;でColumn数分指定)] <- vcomライン数で指定(小数点可) --> インデックス(0)の幅;インデックス(1)の幅;...; ※[S height=(デフォルトのRowの高さ)] <- vcomライン数で指定(小数点可) ※[S scroll=スクロールバーの指定] --> 1:無し 2:水平方向 3:垂直方向 4:両方(デフォルト) ※[S columns=仮のColumn全体数(ColCount)] ※[S rows=仮のRow全体数](RowCount) ※[S Fcolumns=スクロールしない固定部のColumn数](FixedCol) ※[S Frows=スクロールしない固定部のRow数](FixedRows) ※[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=各行の左からのキーの個数(リスポンスで取得する)] ※[D SETEDIT^ZVCMDRG]グリッド作成情報を作成 ※[S editstr=EDITSTR] D[D CREATE^ZVCMDRG]で使用されるパラメタを設定する ※[S cid=(1〜1023の一意の番号)] ※[S form=(1〜1023の親フォームのフォーム番号)] ※[S parent=(1〜1023の親コントロールのcid番号)] ※[S group=(0〜32767のグループ番号)] ※[D CREATE^ZVCMDRG]コントロールオブジェクトの作成 E作成後グリッドコントロールの中に表示する表データを追加する。 ※[S cid=(1〜1023の一意の番号)] ※[S start=開始rowインデックス(0,1,2,3,...)] ※[D DOWNLOAD^ZVCMDRG2]コントロールの中に表示する表データを追加 ※[W "(カラム-0文字列,カラム-1文字列,カラム-1文字列,...)"_$C(13)_$C(10)] ※[W "..."] ※[W "(カラム-0文字列,カラム-1文字列,カラム-1文字列,...)"_$C(13)_$C(10)] ※[W $C(26) Fイベント応答メッセージからコントロールの中に選択されているセルを取得する ※イベント種別=クリックイベントとセルが選択イベントで処理します ※イベント応答メッセージを読み込む[S RESP=$$ReadMsg^ZVCMSUB(Rtail) ※読み込んだ(受信)イベント応答メッセージを分解する[D VCMRESP^ZVCMSUB] ※(Revent2):イベント種別 ※(Rselno):カレントカラム(桁)【最新の選択情報】 ※(Rselcnt):カレントロー(行)【最新の選択情報】 ※(Rmain):null(ステータス取得とセル取得の時のみセルの文字列) ※[Rsub]:null ※[Roption]:選択セルの矩形(左端;上端;右端;下端;Col数;Row数)(0,1,2,...の値) --->グリッドのセルが選択されたイベント応答時[選択矩形情報は選択される前の情報] --->Col数;Row数は固定部とスクロール可能なものを含みます ※(Rkeycode):キーボードイベント時仮想キーコード ※(Rshift):シフト状態 0:無し 1:シフト 2:コントロール 4:<ALT>の組み合わせ ※【(61)左上端のセルが変更されたイベント】の場合は ※[Rselno] = 左端カラム(桁) ※[Rselcnt] = 上端ロー(行) ※[Rmain] = 左上端セルの文字列 Fセル中にビットマッブやテキストを指定の位置に配置できます([リファレンス]と[共通関数を参照]) ※[D SETCELLBMP^ZVCMDRG3] ※[D SETCELL^ZVCMDRG2] ※[D SETCELLATRB^ZVCMDRG3] ───────────────────────────────────── [2]ドローグリッド(TDrawGrid)オブジェクトのイベント →共通ルーチン【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= 32 : (61)左上端のセル位置が変更された(ValueList)(ビット5)(TopLeftChanged) --> グリッド内の非固定セルがスクロールされた時 ※イベント設定変数を設定 → D TOPLEFTCHANGE^ZVCMEVENT ※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2TopLeftCng],[Revent1=EV1Other] ───────────────────────────────────── ※イベントマスクを設定 → D SETEVENT^ZVCMEVENT ───────────────────────────────────── ─────────────────────────────────── 41-1 |目次|前ページ|次ページ|