喫茶XRAYトップページ

[スレッド全体
]

[6175] Re:RadioGroupについて返信 削除
2012/7/6 (金) 17:51:11 Syake
▼ satoさん

多分

一旦Form2をHideして、次回再表示時にForm2のRadioGroupのItemIndex値
を変更してShowしようとしても、そうはならないのが問題なのでしょう。
Hideした時の値がそのまま生かされてしまうのが気味悪いって感じかな。

まあ、別件として
 Form2:=TForm2.Create(Application);
より
 Form2:=TForm2.Create(Self);
が良いと思います。

重箱・・・重箱・・・(^_^;)


それはそうと、「どうしてか?」ですね。

そこはマスターに・・・・ねぇ。


[6176] Re2:RadioGroupについて返信 削除
2012/7/6 (金) 18:08:40 Sara
▼ Syakeさん
▼ satoさん
▼ Syakeさん

以下にすると期待通り動作します。

if Form2=nil then
  Form2:=TForm2.Create(Application);
Form2.ActiveControl := Form2.RadioGroup1;// nil;でも可
Form2.RadioGroup1.ItemIndex := 1;
Form2.Show;

コードで設定する場合とマウスでクリックした場合でActiveControl
が一致しないことが原因のようですが・・・詳しくは?(^^;

 
> 重箱・・・重箱・・・(^_^;)
>
>
> それはそうと、「どうしてか?」ですね。
>
> そこはマスターに・・・・ねぇ。


ぢゃぁ マスター よろしくです(^^;



[6177] Re3:RadioGroupについて返信 削除
2012/7/6 (金) 18:21:37 Mr.XRAY
> > そこはマスターに・・・・ねぇ。
>
> ぢゃぁ マスター よろしくです(^^;


ちょっ,ちょっ,ちょっと待ってください(satoさんのが完全に感染しているな).
二人ともズルイ!!  嫌!!
あっ,急に腹が痛くなってきた.胃ガンかな?
でも,二人のコードと説明で十分じゃないかと.
それで疑問があれば,Syakeさんか,Saraさんがレスしますので (^^;

[6178] Re4:RadioGroupについて返信 削除
2012/7/6 (金) 18:36:42 Mr.XRAY
>以下にすると期待通り動作します。

そうか,つまり,Createして新規表示した時も,既にインスタンスがある
フォームを再表示した時も,同じ動作仕様にしたいということなんですね.

>それはそうと、「どうしてか?」ですね。

必要があれば説明ということで... (^^;

>Form2:=TForm2.Create(Self);

これは「重箱」ではなく,こちらの方がいいと思います.私自身は.
というのは,Form1から,Form2を表示しているので,親子関係が明確です.
生成,解放の管理がしやすいと思っています.
Applicationの方がいい場合もあると思うのですが,
今は例が思いつきません.

[6180] Re5:RadioGroupについて返信 削除
2012/7/9 (月) 10:32:00 sato
▼ マスター
▼ Saraさん
▼ Syakeさん
みなさんありがとうございました。
Form2.ActiveControl := Form2.RadioGroup1;// nil;でも可
で思うような動作になりました。
尚、今後は親子関係が明確を明確にするため、
Form2:=TForm2.Create(Self);とします。
(知らなかったとはいえ、長い間親子関係が不明瞭でした)

以下は途中で気が付いた疑問ですが、重箱の隅なのか大事なことなのか
分かりません。質問ではありませんので、どうぞお構いなく。
これまでFormの表示時に最初にカーソルを持って行きたいときに
TabOrderを変えたりで面倒だったのですが、ActiveControlの
設定で楽になりました。
#1
Form2.ActiveControl := Form2.RadioGroup1;でも
Form2.ActiveControl := Form2.Edit1;でも
Form2.RadioGroup1.ItemIndex := 1;が設定できるのですが
Form2.ActiveControl := nil;でもできるのが?です。
#2
CheckBox1はFocusがあると、点線で囲まれるので、
RadioGroup1も点線で囲まれているときがFocusが当たっていると
思っていましたが、RadioGroup1.SetFocus;とやると点線が
消えるのが?です。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82