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