他のコンポーネントの変化の取得するには?

解決


KHE00221  2004-09-17 06:38:12  No: 10954

自作コンポーネントで
property MEMO : Tmemo read fMemo write fMemo;
で関連付けている MEMO の tag の値の変化を
取得するにはどのようにしたらよいのでしょうか?

(*) MEMOは例で実際には自作コンポーネントの,
    Boolean値の変化をを知りたいのですが。

メッセージでやり取りするしか無いのでしょうか?


jok  2004-09-17 06:40:34  No: 10955

自作コンポーネントであれば、自分でプロパティーをセットするときに
自分で設けたイベントを呼ぶようにするといいと思います


KHE00221  2004-09-17 07:13:44  No: 10956

procedure SetMemo(Value:TMemo)
property Memo:TMemo read fMemo write SetMemo;
と言う事でしょうか?

これではMemoをセットした時のみ SetMemo が実行され
Tag値を変更してもSetMemoは実行されませんし

proecedure SetTag(Value:Integer)
property Tag:Integer read fTag write SetTag

でやるとしてどのようにしたら自分自身を関連づけたコンポーネント
に変化を教える事ができるのでしょうか?


jok  2004-09-17 08:20:53  No: 10957

>MEMOは例で実際には自作コンポーネントの,Boolean値の変化をを知りたいのですが。

これの事ですけど。

例の Memo の場合は Tag を変更されたことを伝える手段はないと思います。


jok  2004-09-17 09:59:35  No: 10958

>例の Memo の場合は Tag を変更されたことを伝える手段はないと思います。

誤解されそうな文章でした。正確には Tag が変更されたタイミングをつかむ
ことはできない、ということです。Application.OnIdle なんかで監視する
とかでしたらできますけど、コンポーネントのコードには向きませんよね。


KHE00221  2004-09-20 03:33:13  No: 10959

メッセージでやり取りするしか無いみたいですね。


jok  2004-09-20 05:00:11  No: 10960

最初に書きましたように has される方は自分のプロパティーをセットするときに
自分のイベントを呼ぶようにします。has するほうは、自分の手続きをそのイベ
ントに代入しておけば、自動的に呼び出されます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加