過去の桐井戸端BBS (桐ver.8)
8251 ハンドルの変数の初期値って? macoto 2000/10/25-10:25
先日はハンドルの概念について、佐田さんをはじめ多くの方から詳しい説明をいただきまして有難うございました。
懇切丁寧に教えていただきましたので、ハンドル概略については分かったのですが、
実際の応用について分からないことがあります。

たとえば桐サンプルの一括処理の「住所管理」を起動して、変数管理をみますと
該当するハンドルの変数に「40」や「1」という値が入っています。
この変数の値はどこからくるものなのでしょうか。自動的に代入されるものなのか、
どこかで指定しているものなのでしょうか。

それから、同じ変数名(たとえば&hWnd)で、ウィンドウ作成などを複数実施した場合は、
自動的に変数の値が変わってくるものなのでしょうか。

また、初歩的な質問で恐縮ですが、宜しくお願いいたします。
8252 Re:ハンドルの変数の初期値って? 悲しげ 2000/10/25-11:07
記事番号8251へのコメント
どもっ、macotoさん

>この変数の値はどこからくるものなのでしょうか。自動的に代入されるものなの
>か、どこかで指定しているものなのでしょうか。

ハンドル番号はこれは桐のシステムが自動的に割り当てる(ハンドル用の変数に代入される)仕様のようです。
ある時、私はハンドルとして変数ではなく(自分で決めた)定数を指定したところ、
見事に撥ね付けられた経験があります。(^^;)

>それから、同じ変数名(たとえば&hWnd)で、ウィンドウ作成などを複数実施した
>場合は、自動的に変数の値が変わってくるものなのでしょうか。

確か1〜40の空いている番号が割り当てられますから、同名ウィンドウであっても、
割り当てられるハンドル番号はその都度異なる可能性があると押さえておいた方がいいでしょう
(全くの空から始めたら常に40から割り当てられるようではあるが)。
ですから、もし特定のフォームなり表ウィンドウなりのハンドル番号を把握しておきたいのであれば、
(関数で探すことはできないようなので?)
次のように予めハンドル用変数名を工夫しておくと云う方法もあります。
複数のウィンドウをオープンしている時に、あるウィンドウに対して「メソッド呼び出し」なり「オブジェクト操作」なりを行う場合に、
このハンドル変数でウィンドウを指定できることとなりますから、ハンドルで悩む可能性が少し減ります。
(例)
macoto.wfm→&whmacoto
cotomo.wfm→&whcotomo
macoto.tbl→&wh表macoto

8255 有難うございました。 macoto 2000/10/26-12:10
記事番号8252へのコメント
悲しげさん、こんにちは。

>ハンドル番号はこれは桐のシステムが自動的に割り当てる(ハンドル用の
>変数に代入される)仕様のようです。
>確か1〜40の空いている番号が割り当てられますから、同名ウィンドウであ
>っても、割り当てられるハンドル番号はその都度異なる可能性があると押
>さえておいた方がいいでしょう。

このような仕組みになっていたのですね。よく理解できました。
でも、このような仕様はマニュアルに記載されていますか?
私は見出すことが出来なかったのですが…
このような初歩的なことは知っていて当たり前のことなのでしょうか?

悲しげさん、本当に有難うございました。
今後とも宜しくお願いいたします。

戻る