2012/7/9 (月) 18:15:31 おかぽん |
▼ satoさん
▼ satoさん
こんにちは。
解決した頃に出てきて恐縮ですが、RadioButtonは、フォーカスを受け取るだけで
チェックがついてしまう、ちょっと素敵で、でも困った仕様があります。
当方、相変わらずDelphi5ですが、最新版も同じなんでしょうか?
ItemIndexを変更しただけでは、フォーカスのあるコントロールが移動しません。
フォームを表示しなおすと、閉じたときにフォーカスのあったコントロールに、
フォーカスが当たりますが、そのとき、上記仕様によりチェック状態がフォーカスのある
コントロールに設定されてしまいます。
普通にTRadioButtonでも再現できるので、適当に配置し、RadioButton1.SetFocus とかすると、
フォーカスの点線もついて、チェックもOnになります。
RadioButton1.Checked := True では、チェックがOnになりますが、フォーカスの点線はありません。
・・・と思いましたが、Windows7では、フォーカスの点線が出ませんでした???
えと、クラシック表示とかWindowsXPあたりで確認してみてください。
そんなわけで
Form2.RadioGroup1.ItemIndex:=1;
を
Form2.RadioGroup1.Controls[1].Perform(WM_SETFOCUS, 0, 0);
に変えてみると、動いてくれたりします。
でもForm2を開いたまま、Form2上のButtonClickイベントあたりに
RadioGroup1.Controls[1].Perform(WM_SETFOCUS, 0, 0);
とか書いてしまうと、非常に紛らわしいことになります。
情報源は他にあったと思いますが、みつからなかったので、参考資料。
RadioGroupの初期値書き込みに関して
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+201007/10070024.txt
ではでは〜。
|
|