|目次|前ページ|次ページ|
─────────────────────────────────────
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
|目次|前ページ|次ページ|