|目次|前ページ|次ページ| ───────────────────────────────────── 22.メモ(TMemo)の使い方 ───────────────────────────────────── [1]メモ(TMemo)オブジェクトの作成 →共通ルーチン【ZVCMMMO】【ZVCMMMO2】【ZVCMMMO3】 ※【注記】キーボード入力で[^][$]は禁止してあります。 ※【注記】キーボード入力で[TAB]は(WantTabs)に依存します。 @予期しない値がセットされていないようにローカル変数を削除します[D KILL^ZVCMSUB] Aイベントマスクを設定します、例では[V2EVENT^ZVCMMMO]ですが->適切に設定 Brectパラメタを作成します。[D SETRECT^ZVCMMMO] (x,y,w,h):位置サイズ情報(行桁サイズモードに設定後) (length):入力許可最大バイト数制限値(MaxLengthプロパティ) -->指定なしの場合制限無し ※※最大長32000文字 <リターン>コードは入力不可 最大長[04-mar-2002]32000文字までに変更 (color):コントロールの色番号(Colorプロパティ) -->指定なしの場合デフォルトの色 (font):エデットコントロールのフオント番号(Fontプロパティ) -->指定なしの場合(null)[font=498]のフオントをセット[SETRECTにおいて] -->0:指定の場合デフォルトのフオント ※font=499〜495を指定するとVcom画面のデフォルトサイズ-2ドット〜-10ドットの 少しだけ小さな[MS 明朝]のフオントが指定できます。 ※font=489〜485を指定するとVcom画面のデフォルトサイズ-2ドット〜-10ドットの 少しだけ小さな[MS ゴシック]のフオントが指定できます。 コントロールに1桁分の高さを指定した場合その中に表示されるフオントは Vcom のデフォルトサイズ-4のサイズが適切な場合が多いようです。 (keycode):キーボードイベントを発生させる終了キーコードのセット -->0を指定した場合0番のキーセットを指定した意味 ※イベントマスク設定でキーボードイベントを有効に設定しないとキーボードイベントは発生しません (その他のプロパティ):(zorder,TabOrder,TabStop)...は必要があれば設定します。 ※[D SETRECT^ZVCMMMO] -> rectstrが作成される Cコントロールの中に表示するテキストをeditパラメタに設定します。[editstr] ※[S editstr="文字列"] D[D CREATE^ZVCMMMO]で使用されるパラメタを設定する ※[S cid=(1〜1023の一意の番号)] ※[S form=(1〜1023の親フォームのフォーム番号)] ※[S parent=(1〜1023の親コントロールのcid番号)] ※[S group=(0〜32767のグループ番号)] ※[S opt=スクロールバーを付ける(ScrollBars)] 0:無し 1:垂直型 2:水平型(十分な高さ[h]が必要%%%[16-mar-2003]%%%) 3:両方(十分な高さ[h]が必要%%%[16-mar-2003]%%%) ※[S pm1=(Alignment)] 1:左にそろえる 2:中央にそろえる 3:右にそろえる ※[S pm2=テキストが右マージンで折り返すようにする <改行>を挿入(WordWrap)] 1:右マージンで折り返す 2:<Enter>を入力しない限り<改行>は挿入されない ※[S pm3=ユーザが<改行>を入力出来るかどうか(行を分割する)(WantReturns)] 1:<改行>を入力可能 入力終了キーを<Enter>にしてはいけません 2:<改行>を入力不可 <Control/Enter>で強制入力が可能です ※[S pm4=<CR>を<LF>に変換する(Flags[]) %%%[05-mar-2002]%%%] 0:<CR>は除去される 1:<CR>を<LF>に変換して送信 ※このモードではメモの各行は<LF>で区切られて入力されます。 通常Cacheでは<LF>でReadが終了しますので U 0:PASTHRU を指定する必要があります。 ※[S pm5=(WantTabs)] 0:<TAB>入力不可(Tab順移動可) 1:<TAB>入力可能(Tab順移動不可) ※[D CREATE^ZVCMMMO]コントロールオブジェクトの作成 E作成後コントロールの中に表示するテキストを変更する。 ※[S cid=(1〜1023の一意の番号)] ※[S editstr="文字列"] ※[D TEXT^ZVCMMMO2]エデットコントロールのテキストを変更する Fイベント応答メッセージからコントロールの中に表示されているテキストを取得する ※イベント種別=通常フォーカスを失った時のイベントで処理します ※イベント応答メッセージを読み込む[S RESP=$$ReadMsg^ZVCMSUB(Rtail) ※読み込んだ(受信)イベント応答メッセージを分解する[D VCMRESP^ZVCMSUB] ※(Revent2):イベント種別 ※(Rselcnt):メモのテキストのバイト数(<LF>を除く)(<CR>やコントロールコード除去) ※(Rselno):モデイファイフラグ ※(Roption):[1]桁位置;[2]行位置;[3]選択開始位置;[4]選択長さ;[5]テキスト長さ --> [5]テキスト長さはメモのテキストの文字列(複数行は<LF>区切りを含む) ※(Rmain):(【注】設定に依存) --> メモのテキストの文字列(複数行は<LF>区切り) ※(Rsub):選択文字列(【注】設定に依存) ※(Rhojyo):メモのテキストの行数 ※(Rkeycode):キーボードイベント時仮想キーコード ※(Rshift):シフト状態 0:無し 1:シフト 2:コントロール 4:<ALT>の組み合わせ ───────────────────────────────────── [2]メモ(TMemo)オブジェクトのイベント →共通ルーチン【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] ───────────────────────────────────── ※イベントマスクを設定 → D SETEVENT^ZVCMEVENT ───────────────────────────────────── [3]汎用サブルーチン[ZVCSMMB] --> ※※※多量のデータベースからメモに全行表示します ただし添字の異なった次元にデータを持つ場合には 使用出来ません さらに編集結果データがデータベース格納されます ※※※データベース格納添字と次元は特定の制限があります <<<入力変数>>> ※※※ テーブルに関する情報変数 ※※※ TTYPE => 定型テーブル名と添字の深さ TNAMEとLEVEL,SUBSCR(i) は (場合によってはPOSも)自動的に決定されます ※※他の入力変数は指定した値がそのまま有効です null/<undef>の時はTNAME,LEVELで指定します TNAME => 汎用テーブル名(グローバル名) ex. STTJ TUCI => テーブルuci TVOL => テーブルvol LEVEL => テーブルグローバルの添字の深さ(次元)1,2,3... SUBSCR(i) => グローバルの添字の文字列(固定定数) ex. LEVEL=3 ならば SUBSCR(1)とSUBSCR(2)を設定する ※※※ メモ表示に関する情報変数 ※※※ TOP => メモの上端の行位置 LEFT => メモの左端の桁位置 WIDTH => メモの幅 HEIGHT=> メモの高さ id -> VCM control id番号 PARENT -> 親のフォームcid FORM -> フォーム番号 GROUP -> グループ番号 READONLY -> 変更不可(1) EVENT -> 0:イベント無(表示のみの時) 1:イベント発生有(入力有) keycode -> 終了イベントキーセットを指定する -----<<<以下RECT,opt,pm1,...パラメタを参照>>>-------- font -> font番号 color -> 色番号 opt <- スクロールバー(0:無 1:垂直 2:水平 3:両方) pm1 <- 1:左 2:中央 3:右にそろえる pm2 <- 1:右マジンで折り返す 2:<Enter>を入力しない限り<改行>は挿入されない pm3 <- 1:<改行>を入力可能 2:<改行>を入力不可 pm4 <- 0:<CR>は除去される 1:<CR>を<LF>に変換して送信(U 0:PASTHRU) pm5 <- 0:<TAB>は入力不可 1:<TAB>入力可能(Tab順に影響) パラメタ他にもあります ───────────────────────────────────── [使い方] ※ <<<ローカル変数初期化>>> D KILL^ZVCSMMB ※ <<<作成時呼び出し>>> D CREATE^ZVCSMMB ※ <<<選択時呼び出し>>> D KEYPRESS^ZVCSMMB ※ <<<フォーカスを失った時呼び出し>>> D KILLFOCUS^ZVCSMMB ※ <<<廃棄時呼び出し>>> D DESTROY^ZVCSMMB ※ラベル(TEST)から(CREATE)の前迄は、使い方のサンプルです。 ※ラベル(CREATE)以降は、<<<共通サブルーチン部>>>です。 ※ご注意[cid=990,991,992,993,994は予約されています] ※このルーチンをコピーして自分で都合良く変更しても結構です。 ※<ご注意>メモ応答オプション設定に注意してください。(結果を返すか?) ───────────────────────────────────── ─────────────────────────────────── 22-1 |目次|前ページ|次ページ|