こんにちは,7of9(セブンオブナイン)です。
力技での対応なら思いつきました。
以下のフォームがあるとします。
- B_disable : TButton -- GroupBox1のコンポーネントをDisabledにする機能
- GroupBox1 : TGroupBox -- 以下の3つのコンポーネントを持つ
+ RadioButton1 : TRadioButton
+ CheckBox1 : TCheckBox
+ Button2 : TButton
B_disableのOnClickで以下のような処理をします。
-----
procedure TForm1.B_disableClick(Sender: TObject);
var
loop: Integer;
className: String;
begin
for loop := 0 to (GroupBox1.ControlCount - 1) do begin
className := GroupBox1.Controls[loop].ClassName;
if (Pos(className, 'TButton') >0) then begin
GroupBox1.Controls[loop].Enabled := false;
end;
if (Pos(className, 'TCheckBox') >0) then begin
GroupBox1.Controls[loop].Enabled := false;
end;
end;
end;
-----
上記の例では、TButtonかTCheckBoxのタイプのみDisabledにします。
コンポーネントのタイプを調べるのが面倒な場合は、GroupBox1上のDisabledにしたいコンポーネントのTagの値を同じ値(例えば99)にしておいて、
if (GroupBox1.Controls[loop].Tag == 99) then begin
GroupBox1.Controls[loop].Enabled := false;
end;
のようにしてもいいかもしれません。
MLホームページ:
http://www.freeml.com/delphi-users
----------------------------------------------------------------------
夫婦で≪温泉≫1泊2食100円~!京都・箱根などなど
http://ad.freeml.com/cgi-bin/sa.cgi?id=kWxDZ
------------------------------------------------------[freeml byGMO]--