RadioGroupで特定の項目を選択できない状態にするには?


黒酢  2006-09-28 13:03:51  No: 23403  IP: 192.*.*.*

標記の件、
RadioGroupで特定の項目を(グレーなどにして)選択できない状態にするというのは可能でしょうか?
よろしくお願いします。

編集 削除
ん?  2006-09-28 13:56:38  No: 23404  IP: 192.*.*.*

こんなのとか?

procedure RadioGroupButtonEnableChange(
 RadioGroup: TRadioGroup; Index: Integer; Enabled: Boolean);
var
  i: Integer;
  caption: String;
begin
  caption := RadioGroup.Items[Index];
  for i := 0 to RadioGroup.ControlCount -1 do begin
    if RadioGroup.Controls[i] is TRadioButton then begin
      if TRadioButton(RadioGroup.Controls[i]).Caption = caption then begin
  TRadioButton(RadioGroup.Controls[i]).Enabled := Enabled;
      end;
    end
  end;
end;

例)
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  RadioGroupButtonEnableChange(RadioGroup1, 0, not SpeedButton1.Down);
end;

Delphian World にそういうコンポーネントあった気もする。

編集 削除
風来坊  2006-09-28 15:42:34  No: 23405  IP: 192.*.*.*

TRadioGroup の Buttons プロパティで各 RadioButton をいぢれる。
Delphi のバージョンに依存するかもしれませんが...

編集 削除
orz  2006-09-28 22:45:13  No: 23406  IP: 192.*.*.*

> TRadioGroup の Buttons プロパティで各 RadioButton をいぢれる。
D5 にはないです。

6以降かな?

編集 削除
黒酢  2006-09-29 09:21:11  No: 23407  IP: 192.*.*.*

回答ありがとうございます。
TRadioButton(RadioGroup.Controls[i]).Enabled 
でアクセスする方法は確認できました。

Buttons プロパティはどうしてもわかりませんでした。

RadioGroup1.( ・・・・).Buttons  なんでしょうね。・・・の部分がなかなかたどり着きません。
もしかしたらD6にはないのかな?

編集 削除
みんみん  2006-09-30 00:18:54  No: 23408  IP: 192.*.*.*

D7ではButtonsプロパティは普通にありました。
質問のことに関しては

Radiogroup1.Buttons[0].Enabled :=false;
//Radiogroup1の最初の項目を使用不可に

みたいな感じでできると思いますがどうでしょうか。

編集 削除
3K  2006-09-30 10:51:58  No: 23409  IP: 192.*.*.*

RadioGroup.Controls[*].Enabled := false;
*はItemsの番号

D5にてOKです

編集 削除
カレーライズ  2006-09-30 11:42:15  No: 23410  IP: 192.*.*.*

グループボックス内にラジオボタンを置くというじゃだめなの??むしろそっちの方がそれぞれのボタンに対してイベント処理できるので良いと思うですが・・・  ソースの量を少ないしたいのですかね??

編集 削除
黒酢  2006-10-03 10:11:03  No: 23411  IP: 192.*.*.*

皆さん、フォローありがとございます。
D6だとButtonsプロパティは無いような気がします。

BDS2006だと、
    RadioGroup1.Buttons[0] := false;
のように記述しても

[Pascal エラー] Unit1.pas(**): E2129 読み込み専用プロパティに書き込むことはできません

と怒られコンパイルできませんでした。

D7〜8では可能なんでしょうか?

私はD6とBDS2006しかありません。

編集 削除
黒須  2006-10-03 10:22:18  No: 23412  IP: 192.*.*.*

あああっ
すみません。
RadioGroup1.Buttons[0].Enabled := false;
のミスでしたっ
これでできます。

編集 削除