(現在 過去ログ28 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■4287 / inTopicNo.21)  Re[13]: 明細とフッタの間をマウスで上下したい
  
□投稿者/ homepiyo -(2009/01/22(Thu) 16:39:27)
    2009/01/23(Fri) 20:50:04 編集(投稿者)
    2009/01/23(Fri) 20:48:02 編集(投稿者)
    2009/01/23(Fri) 05:41:47 編集(投稿者)
    2009/01/22(Thu) 23:07:58 編集(投稿者)
    2009/01/22(Thu) 22:57:04 編集(投稿者)
    2009/01/22(Thu) 20:12:41 編集(投稿者)
    2009/01/22(Thu) 19:55:37 編集(投稿者)
    2009/01/22(Thu) 19:10:00 編集(投稿者)

    No4286に返信(homepiyoさんの記事)
    ドラッグで明細の表示行数がかわるようにできました。ただ、コンピュータへの負荷が大きいように思います。←表示が変更なければ描画更新しないように訂正しました。あと、最大化から復元したとき表示がウィンドウ内におさまらない場合があったので訂正しました。

    手続き定義開始 b境界::マウス左ダウン()
     &境界ボタン="左ダウン"
    手続き定義終了

    手続き定義開始 フォーム::マウス移動()
     if (&境界ボタン="左ダウン")
    *  if (&マウス移動回数>10)           ←削除
    *   &マウス移動回数=0             ←削除
       手続き実行 表示行数切り替え(&マウス位置[2])
    *  end                     ←削除
    *  &マウス移動回数=&マウス移動回数+1      ←削除
     end
    手続き定義終了

    手続き定義開始 フォーム::マウス左アップ()
     if (&境界ボタン="左ダウン")
      &境界ボタン=""
     end
    手続き定義終了

    proc 表示行数切り替え(数値 &マウスY位置)
     /* トィップス(twips)=ポイント(pt)×20 */
     var 数値{&ウィンドウ作業領域高さ,&部合計高さ,&ヘッダ部高さ,&明細部高さ,&フッタ部高さ}
     var 数値{&表示行数,&本文高さ,&本文始点Y,&本文ファイル高さ}
     var 数値{&明細部高さ初期値,&フッタ部高さ初期値} ←追加
     var 長整数{ &終了状態, &size[2] }
     var Int{&Iwinp,&mode}

     /* ウィンドウリスト取得でエラーの回避・・・KU1068:対象表が更新中またはグループ操作中のためこのコマンドは使用できません */
     メソッド呼び出し @フォーム.更新モード取得( &mode )
     条件 ( &mode<>0 ) 手続き終了

     /* 部合計の高さ(ヘッダ部の高さ+明細部の高さ+フッタ部の高さ) */
     ウィンドウリスト取得 &Iwinp
     &終了状態 = #ウィンドウサイズ( &Iwinp, "size" , 2 )
     &ウィンドウ作業領域高さ=#INT(#DotToPoint(&size[2])) /* ポイント(pt) */
     &部合計高さ=(&ウィンドウ作業領域高さ-4)×20     /* この行以降はトィップス(twips) */
    *??? &ウィンドウ作業領域高さ=&部合計高さ+4pt(80twipt) ???なぜか4pt(80twipt)ほど違う。
    *??? ヘルプの#ウィンドウサイズの作業領域を参照。

     /* ヘッダ部の高さ */
     オブジェクト操作 &ヘッダ部高さ=@フォームヘッダ部.セクションの高さ

     /* 明細部の高さ */
     if (&マウスY位置<0)  /* ウィンドウの最大化・復元の場合 */
      オブジェクト操作 &フッタ部高さ=@フォームフッタ部.セクションの高さ
      &明細部高さ=&部合計高さ-&ヘッダ部高さ-&フッタ部高さ
     else         /* 境界ボタン移動の場合 */
      &明細部高さ=&マウスY位置-&ヘッダ部高さ
     end
     &表示行数=#INT(&明細部高さ÷(21×20)) /* 1明細の高さ(21pt)=21×20twipt */
     条件 ( &表示行数<1 ) &表示行数=1    ←追加
     &明細部高さ=&表示行数×(21×20) /* 明細行数分の高さにする(フッタ部との間に隙間をつくらない) */
     オブジェクト操作 &明細部高さ初期値=@フォーム明細部.セクションの高さ

     /* フッタ部の高さ */
     &フッタ部高さ=&部合計高さ-&ヘッダ部高さ-&明細部高さ

     /* 本文の高さ */
     オブジェクト操作 &本文始点Y=@t本文.始点Y
     オブジェクト操作 &本文ファイル高さ=@t本文ファイル.高さ
     &本文高さ=&フッタ部高さ-&本文始点Y-&本文ファイル高さ

     /* 表示 */
     条件 ( &本文高さ<400 ) 手続き終了
    * 条件 ( &表示行数<1 ) 手続き終了              ←削除
     オブジェクト操作 &明細部高さ初期値=@フォーム明細部.セクションの高さ  ←追加
     オブジェクト操作 &フッタ部高さ初期値=@フォームフッタ部.セクションの高さ  ←追加
     if (&明細部高さ=&明細部高さ初期値 .and &フッタ部高さ=&フッタ部高さ初期値)  ←追加
      手続き終了                         ←追加
     end                              ←追加
     if (&明細部高さ>&明細部高さ初期値) /* 明細部が高くなる場合(ちらつき防止) */
      オブジェクト操作 @フォームフッタ部.セクションの高さ=&フッタ部高さ
      オブジェクト操作 @t本文.高さ=&本文高さ
      オブジェクト操作 @t本文ファイル.始点Y=&本文高さ+&本文始点Y
      オブジェクト操作 @t添付ファイル.始点Y=&本文高さ+&本文始点Y
      オブジェクト操作 @フォーム明細部.表示行数=&表示行数
      オブジェクト操作 @フォーム明細部.セクションの高さ=&明細部高さ
     else                /* 明細部が低くなる場合(ちらつき防止) */
      オブジェクト操作 @フォーム明細部.セクションの高さ=&明細部高さ
      オブジェクト操作 @フォーム明細部.表示行数=&表示行数
      オブジェクト操作 @t本文.高さ=&本文高さ
      オブジェクト操作 @t本文ファイル.始点Y=&本文高さ+&本文始点Y
      オブジェクト操作 @t添付ファイル.始点Y=&本文高さ+&本文始点Y
      オブジェクト操作 @フォームフッタ部.セクションの高さ=&フッタ部高さ
     end

     /* 描画更新 */
     メソッド呼び出し @フォーム.再描画(1)
     メソッド呼び出し @フォーム.描画更新()
    End


Accountsample10.lzh
/86KB
引用返信 [メール受信/OFF] 削除キー/
■4296 / inTopicNo.22)  Re[14]: 明細とフッタの間をマウスで上下したい
□投稿者/ 今村 誠 -(2009/01/23(Fri) 23:20:49)
    2009/01/24(Sat) 10:45:38 編集(投稿者)

    homepiyoさんこんにちはツリーが分かれると後で検索しにくいと思い
    こちらに完成サンプルもアップしておきます。
    フッタテキストのボタン訂正は入力後イベントを個別に設定しEscキー
    にも対応しました。
     マウスイベントの説明は大変分かり易かったですよ。
    動作原理が解ると後は応用なので横方向への対応やウィンドの大小
    への対応など欲が出ると思いますが、今はメールソフトに変わる
    桐メール受信送信までの考えはないのでここで打ち止めにしたいと
    思います。
    貴重な時間を割いていただきありがとうございました。

    送信.tblのディレクトリーを変更したので「mail詳細.rpt」の
    強制改行がうまく表示されていません。
    レポートを再定義で開き以下の手順で手直ししておいて下さい。
    1)書式(S)→オブジェクトの属性の押しピン(左上)を何度か
      押して立てておきます。
    2)書式(S)→オブジェクトのリストを表示します。
    3)オブジェクトのリストの「単票」が青くなるように左
      クリックします。
    4)オブジェクトの属性ダイアログの対象表タブをクリック
    5)表ファイル名(T)の「\送信\送信.tbl」を「送信.tbl」に
      変更します。
    6)閉じる「×」を押し保存します。
解決済み!

1232720449.lzh
/68KB
引用返信 [メール受信/OFF] 削除キー/

<前の20件

トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -