自作コンポーネントで
property MEMO : Tmemo read fMemo write fMemo;
で関連付けている MEMO の tag の値の変化を
取得するにはどのようにしたらよいのでしょうか?
(*) MEMOは例で実際には自作コンポーネントの,
Boolean値の変化をを知りたいのですが。
メッセージでやり取りするしか無いのでしょうか?
自作コンポーネントであれば、自分でプロパティーをセットするときに
自分で設けたイベントを呼ぶようにするといいと思います
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
でやるとしてどのようにしたら自分自身を関連づけたコンポーネント
に変化を教える事ができるのでしょうか?
>MEMOは例で実際には自作コンポーネントの,Boolean値の変化をを知りたいのですが。
これの事ですけど。
例の Memo の場合は Tag を変更されたことを伝える手段はないと思います。
>例の Memo の場合は Tag を変更されたことを伝える手段はないと思います。
誤解されそうな文章でした。正確には Tag が変更されたタイミングをつかむ
ことはできない、ということです。Application.OnIdle なんかで監視する
とかでしたらできますけど、コンポーネントのコードには向きませんよね。
メッセージでやり取りするしか無いみたいですね。
最初に書きましたように has される方は自分のプロパティーをセットするときに
自分のイベントを呼ぶようにします。has するほうは、自分の手続きをそのイベ
ントに代入しておけば、自動的に呼び出されます。
ツイート | ![]() |