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

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

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

■4358 / inTopicNo.1)  イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
  
□投稿者/ kirikri -(2009/02/16(Mon) 18:46:07)
    OS:Win XP
    ver:ver9-2007

    桐のヘルプを見ると下記のように書いてありますが、
    もう少し情報が欲しく、質問をさせて頂きました。

    ハンドル = <ハンドル>
    処理対象となるフォームウィンドウのハンドルを指定します(計算式)。
    無効なハンドルを指定するとエラーになります。
    イベントハンドラ内で、自身のフォームを操作する場合は、このパラメータを省略できます。
    サブフォームからメインフォームを処理対象にする場合は、「ハンドル=」に &hwindow を指定します。
    &hwindow はフォーム組み込みの局所変数です。この変数には自身のウィンドウハンドルが格納されています。
    一括処理から実行する場合は、このパラメータを省略できません。


    実際に動かして確認をしてみると、
    ハンドルは、開いたフォームの順番にフォームに1、2、3と割り当てられているような感じです。
    この認識が正しいとすると、ハンドルは任意に変動してしまうのでイベントハンドラで固定で指定する
    とおかしなことになってしまう可能性があります。
    皆様は、どのようにハンドルを指定して、自分が処理をさせたいフォームを指定されているのでしょうか?

    初歩的な質問で申し訳ありませんが、
    どうぞ、よろしくお願い致します。
引用返信 [メール受信/OFF] 削除キー/
■4359 / inTopicNo.2)  Re[1]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ 通りすがり -(2009/02/16(Mon) 21:16:23)
    > この認識が正しいとすると、ハンドルは任意に変動してしまうのでイベントハンドラで固定で指定する
    > とおかしなことになってしまう可能性があります。

    ハンドルの指定は、定数じゃなく計算式だど
    ヘルプで、
     コマンド ウィンドウ作成
     関数 #ウィンドウハンドル取得( n )
    とかを見てみて
引用返信 [メール受信/OFF] 削除キー/
■4360 / inTopicNo.3)  Re[1]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ うにん -(2009/02/17(Tue) 09:23:37)
    > イベントハンドラ内で、自身のフォームを操作する場合は、このパラメータを省略できます。

    だから、通常は指定する必要はない。

    > サブフォームからメインフォームを処理対象にする場合は、「ハンドル=」に &hwindow を指定します。

    その他のウィンドウは、「ウィンドウ作成」コマンド実行時にコマンドパラメータで取得する。

引用返信 [メール受信/OFF] 削除キー/
■4361 / inTopicNo.4)  Re[2]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ 尾形 -(2009/02/17(Tue) 13:14:55)
    どうも、こんにちは

    > #ウィンドウハンドル取得( n )
    > 表番号 n の表のウィンドウハンドルを返す
    表名からだけでなく、フォームファイル名からも
    #ウィンドウハンドル取得できたら便利なのにと思う

    対象表のないフォームも・・・あると思います

引用返信 [メール受信/OFF] 削除キー/
■4362 / inTopicNo.5)  Re[1]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ ONnoji -(2009/02/17(Tue) 15:44:03)
    > 実際に動かして確認をしてみると、
    > ハンドルは、開いたフォームの順番にフォームに1、2、3と割り当てられているような感じです。
    > この認識が正しいとすると、ハンドルは任意に変動してしまうのでイベントハンドラで固定で指定する
    > とおかしなことになってしまう可能性があります。
    > 皆様は、どのようにハンドルを指定して、自分が処理をさせたいフォームを指定されているのでしょうか?

    あえて桐の場合のウィンドウハンドルと呼びますが・・・、

    桐の場合のウィンドウハンドル(以降ウィンドウハンドルと呼ぶ)は、整数(1〜40)で自動的に割り当てられるものですよ。

    ウィンドウハンドルはウィンドウを識別するもので、ウィンドウIDと言っても差し支えないでしょう。

    ちなみに、ウィンドウハンドルを持つウィンドウとは以下のものです。

    ・フォーム(.wfm)

    および、

    ・ウィンドウとして開いている表(.tbl)
    ・ウィンドウとして開いている結合表(.viw)
    ・ウィンドウとして開いている外部DB(.xvw)
    ・桐自身

    です。

    なお、ウィンドウとして見えていない[表コマンド]で開いている表(.tbl)は、ウィンドウではありません。
    ※同様に結合表、外部DBも同じです。

    レポート(.rpt)と一括処理(.cmd)にはウィンドウハンドルはありません。

    フォーム(.wfm)の場合では、
    ・編集対象表を持ったフォームは、1から順番にウィンドウハンドルが割り当てられます。
    ・編集対象表を持たないnullフォームは、40から順番に若い番号に割り当てられます。
    ※すでに使用されているウィンドウハンドルが有る場合、飛び越して割り当てられます。

    イベント処理(.kev)の場合、コマンドの ハンドル = <ハンドル> は基本的に必要ありません。
    ※私は常にこのパラメータを削除しています。

    ただし、自分自身と異なる他のウィンドウを指定する場合には、ハンドル = <ハンドル> は必要です。
    ※私は、メイン&サブフォームは使用しないので、サブフォームの場合の事は失念しました。

    なお、昔ながらの一括処理実行の場合は、ハンドル = <ハンドル> を省略できません。

    > 皆様は、どのようにハンドルを指定して、自分が処理をさせたいフォームを指定されているのでしょうか?

    私の場合は、自作の一般手続きによるランチャーでフォームや表のウィンドウを起動しています。

    拙作ランチャーでは、ウィンドウハンドルの値を自動的に収集します。

    また、すでに指定したフォームや表のウィンドウが存在する場合、自動的にそのウィンドウをフォーカスします。

    なお、拙作ランチャーの他に、自作の一般手続きによるシーカーも用意してあります。

    拙作シーカーは、指定したフォームまたは表のハンドル番号を調査します。
    ※シーカーはランチャーからも呼び出されています。


    拙作シーカー・ランチャーに関しては拙作ブログをご参考にしてください。
     ↓
    ブログ版−桐のイベント道場|桐 記事フィルター
    http://blogs.yahoo.co.jp/siliconvalley_bay_7565/folder/1593248.html
引用返信 [メール受信/OFF] 削除キー/
■4363 / inTopicNo.6)  Re[2]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ kirikri -(2009/02/17(Tue) 22:11:33)
    通りすがりさま
    うにんさま
    尾形さま
    ONnojiさま

    たくさんの方からお返事を頂きありがとうございます!!
    業務多忙で返事が遅れてしまいすみません。



    通りすがりさま
    #ウィンドウハンドル取得( n )というのがあったんですか。
    初めて知りました。
    さっそく明日試してみます。
    ありがとうございます。

    うにんさま
    今回は3つのフォームを切り替えるパターンです。
    コマンドパラメータからの取得は、今回は作りが色々あって
    無理そうですが大変勉強になりました。

    尾形さま
    >対象表のないフォームも・・・あると思います

    確かにそうですね。


    ONnojiさまは、本当に詳しい方ですね。
    拙作ランチャーすごいですね!
    時間がある時に見てみます。

    明日実際に試してみます。
    皆様ほんとうに助かりました。
    ありがとうございます。

    kirikiri
引用返信 [メール受信/OFF] 削除キー/
■4364 / inTopicNo.7)  Re[3]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ homepiyo -(2009/02/18(Wed) 00:59:13)
    No4361に返信(尾形さんの記事)
    こんにちは
    >
    > 表名からだけでなく、フォームファイル名からも
    > #ウィンドウハンドル取得できたら便利なのにと思う
    >
    > 対象表のないフォームも・・・あると思います
    >
    以前、対象表のないフォームがいくつでも開くので一つにしようと、フォーム名とハンドルの対応文字列を作って対応したことがあります(ウィンドウリスト取得とウィンドウ情報取得を使った)。最近は、対応表のないフォームにはダミー表をつけて、ダミー表からハンドルを取得するようにしています。

    サンプル
    以前・・・aフォーム削除.cmd
    最近・・・bハンドルテスト.cmd


samplehandle.lzh
/17KB
引用返信 [メール受信/OFF] 削除キー/
■4365 / inTopicNo.8)  Re[4]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ 尾形 -(2009/02/18(Wed) 09:02:26)
    どうも、こんにちは

    > フォーム名とハンドルの対応文字列を作って
    > 対応表のないフォームにはダミー表をつけて
    こういう事をしなくてもいいように
    フォーム名からハンドル取得できれば簡単なのになぁ
    と思っていたのです

引用返信 [メール受信/OFF] 削除キー/
■4366 / inTopicNo.9)  Re[5]: イベントハンドラのメソッド呼び出しのパラメータのハンドルについて。
□投稿者/ 通りすがり -(2009/02/18(Wed) 13:22:04)
    基本的に、表名やフォーム名から#ウィンドウハンドルの逆引きは無理じゃね?
    同一の表やフォームが複数のウィンドウで開かれるからね
    ダミー表を使った場合もしかり

    逆引きの関数作るにしても返す値が最高40個ある訳で、配列変数に値を返す羽目になるど

    もし、その中の一つを特定したい場合には、区別する情報はウィンドウ作成時点くらいしかない訳で、
    ウィンドウ作成時点に区別取得しておくのが普通の考え方ジャマイカ
    対象表があれば、その表番号を確保しといても区別できるよね

    homepiyo さんのケースのように、同一の表名やフォーム名で開かれてるウインドウの#ウィンドウハンドルを全て列挙して、
    その全てに同じ処理を行うことは可能な訳で
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -