2009年11月16日

チェックボックスのOnClick

チェックボックスのチェック状態を制御するために、Checkedプロパティを操作するが、この操作によってチェック状態が変化し、かつそのチェックボックスがEnabledである場合、
onClickイベントが発生する。

本当にそうなのかとStdCtrlsの中身拝見。

TCheckBoxの継承元、TCustomCheckBoxのSetStateで、
SetStateの中でClickを呼び出してる。こういう、コンポーネントの中身の挙動を
ソースで追いかけられることが多いのもDelphiの魅力の一つだ。

というわけで仕方ないので、チェック状態を変更しつつも、Click時の処理を行いたく
ないならば、グローバルでフラグでも立てておくか、あるいは一時的にonClickプロシジャを
なしにして、あとから戻す、という手を使う…のでいいのかなあ。

CheckBox1.onClick := nil;
CheckBox1.Checked := False;
CheckBox1.onClick := CheckBox1Click;

他にいい方法あるだろうか。


【Delphiの最新記事】
posted by Tig3r at 08:32| Comment(0) | TrackBack(0) | Delphi
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33667303

この記事へのトラックバック