FDELPHI 12 /RE:04870 RE:Connect通知  こんにちは、スペース西 さん、かつぼー さん  まとめレスで失礼します。 》質問が2つあったと考えれば良いですかね! そうですね、自分でも質問が2つあったことに気がついていなかったというのも ありますが。(^^;ゞ 》1.ボタンのEnabled制御の方法? ... これは ActionList で解決 えぇと、解決といっていいのかなんというか。 定石的な方法を求めたのは私なんで、だまって受け入れればいいのでしょうが、 1つだけ疑問があります。それは、なんで直接ボタンの Enabled を制御してはい けないのか、なぜわざわざ ActionList を介した方がいいのか、という点です。 その点だけ理解できれば、方法論的なものもわかりましたし、たぶん全て解決だ と思います。 》2.動的な変化に対応するには? ... 後述 おぉ、ComponentCount でループを回すという方法ですね。 確かに、この方法だと確実に判別できますね。 かつぼーさんに教えてもらった方法は、interface というのを介してはいますが、 要は Form1 にカウンターを設けて、Connect と DisConnect の時にそのカウンタ ーを更新するという方法だと理解しました。 ところが、どうもおかしな挙動をすることがありました。 それは、2つの TdTelnet を使い、1つ目は正常に Connect し、もう一つはサー バの存在しないIPアドレスを指定するなど、正常に Connect できなかった時に 起こりました。このとき、最初に Connect した時はきちんとカウンタがインクリ メントされたのですが、2つ目がタイムアウトになってしまった時に Connect が 発行されないにもかかわらず DisConnect が発行されてしまうようで、1つ目が 接続中にも関らずカウンターが0になってしまいました。 ということで、スペース西さんとかつぼーさんに教えていただいたものから理解 できるところだけをつまみ食いして、折衷案のようなものを作ってみました。 今回の私のプログラムでは、From1 に ChkConnect という procedure を設けて、 IdTelnet の OnConnect と OnDisConnect からその procedure を呼んで、その中 では ComponentCount のループを回して接続中のものを数えます。そして、その 値に応じてボタンの Enabled を制御するようにしました。 とりあえずこれで今のところは、不都合なく動いています。 どうもありがとうございました。                                 としき