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


黒酢  2006-09-28 22:03:51  No: 23403

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


ん?  2006-09-28 22:56:38  No: 23404

こんなのとか?

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-29 00:42:34  No: 23405

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


orz  2006-09-29 07:45:13  No: 23406

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

6以降かな?


黒酢  2006-09-29 18:21:11  No: 23407

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

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

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


みんみん  2006-09-30 09:18:54  No: 23408

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

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

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


3K  2006-09-30 19:51:58  No: 23409

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

D5にてOKです


カレーライズ  2006-09-30 20:42:15  No: 23410

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


黒酢  2006-10-03 19:11:03  No: 23411

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

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

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

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

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

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


黒須  2006-10-03 19:22:18  No: 23412

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加