喫茶XRAYトップページ
[
スレッド全体
]
[6169]
RadioGroupについて
返信
削除
2012/7/6 (金) 14:22:38
sato
ふたたびよろしくお願いします。(コーヒーのお代わりみたいですが)
Form1にButton1、Form2にRadioGroup1を置き
Form1.Button1Clickで
if Form2=nil then
Form2:=TForm2.Create(Application);
Form2.RadioGroup1.ItemIndex:=1;
Form2.Show;
とすると、Form2.RadioGroup1のItemIndexは1になり、
2番目のボタンが選択状態になります。(FocusはTabOrderが0の
コンポーネントにあります)
ここで、RadioGroup1の1番目のボタンを選択すると、RadioGroup1に
Focusが移ります。
その後、Form2を閉じて、再度Form1のButton1をClickしても、今度は
Form2.RadioGroup1のItemIndexは0のままです。
どうしてでしょうか、
たびたびで申し訳ありませんがよろしくお願いします。
ただ、当然のことながら
Form2.Show;とせずに
Form2.ShowModal;
・・・
Form2.Release;
Form2:=nil;とすると問題ありません。
[6188]
Re:RadioGroupについて
返信
削除
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/
DelphiBB
S/
wwwlng.
cgi?
print+
201007/
10070024
.
txt
ではでは〜。
[6190]
Re2:RadioGroupについて
返信
削除
2012/7/12 (木) 14:57:59
Mr.XRAY
▼ おかぽんさん
スミマセン.ちょっとやってみたたのですが,
よく現象を把握できません.理解していないのかもしれません.
ただ,以下の現象は確認しました.
実際にマウスで,該当Itemをクリックしないと,点線が表示されません.
> フォーカスの点線が出ませんでした???
何か勘違いしているかも...
http://
mrxray.
on.
coocan.
jp/
Others/
TRadioGr
oup.
htm#
02
[6216]
Re3:RadioGroupについて
返信
削除
2012/7/20 (金) 12:12:46
おかぽん
▼ Mr.XRAYさん
遅レスですいません。
XPでもクラシックでないとフォーカス矩形が表示されないのかもしれません。
紛らわしい画像を一枚添付
「22222」をクリック後
RadioGroup1.Controls[3].Perform(WM_SETFOCUS, 0, 0);
これでフォーカスを当てて、チェックを移動したものです。
[6221]
Re4:RadioGroupについて
返信
削除
2012/7/24 (火) 17:33:43
Mr.XRAY
> これでフォーカスを当てて、チェックを移動したものです。
う〜む.なるほど,
で,Delphi 7, 2010, XE でやってみましたが,なりません.
Delphi 6 でやろうししたら,
「TRadioGroupが見つかりません」
「TButtonが見つかりません」
? あっ,UAC を無効にして,管理者権限に昇格しないでインストール
するテストしたままだった! (笑)
しかし,私のとろこでは,なぜならないの?
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82