Ich würde das ganz anders angehen:
1. Schreibe eine Procedure, die alle GroupBoxes unsichtbar macht:
Delphi-Quellcode:
Procedure TFormMain.GroupBoxenUnsichtbar;
begin
Group1.Visible := False;
Group2.Visible := False;
Group3.Visible := False;
Group4.Visible := False;
Group5.Visible := False;
end;
Dann schreibst du dir eine Ereignisbehandlung für OnClick deiner RadioGroup:
Delphi-Quellcode:
Procedure TFormMain.Radio_WasWeisIchClick(Sender: TObject);
begin
GroupBoxenUnsichtbar;
Case Radio_WasWeisIch.ItemIndex Of
1 : Group1.Visible := True;
2 : Group2.Visible := True;
3 : Group3.Visible := True;
4 : Group4.Visible := True;
5 : Group5.Visible := True;
End;
end;
Kommen nun weitere GroupBoxen hinzu, trägst du die einfach in diese beiden Proceduren ein.
Alternativ könntest du diese GroupBoxen auch in einer Objektliste verwalten ...
Delphi-Quellcode:
PRIVATE { Private-Deklarationen }
MyObjectList : Generics.Collections.TObjectList<TGroupBox>;
...
Procedure TFormMain.FormCreate(Sender: TObject);
begin
...
MyObjectList := Generics.Collections.TObjectList<TGroupBox>.Create;
...
end;
... und eine Methode schreiben, um die Objektliste zu befüllen:
Delphi-Quellcode:
Procedure TFormMain.MyObjectListFill;
begin
MyObjectList.Add(Group1);
MyObjectList.Add(Group2);
MyObjectList.Add(Group3);
MyObjectList.Add(Group4);
MyObjectList.Add(Group5);
end;
Dann wäre Radio_WasWeisIch.Items analog zu MyObjektList.Items und die Methoden sähen wie folgt aus:
Delphi-Quellcode:
Procedure TFormMain.GroupBoxenUnsichtbar;
Var
i : Integer;
begin
For i := 0 TO MyObjectList.Count -1 DO
MyObjectList.Items[i].Visible := False;
end;
Procedure TFormMain.Radio_WasWeisIchClick(Sender: TObject);
begin
GroupBoxenUnsichtbar;
MyObjectList.Items[Radio_WasWeisIch.ItemIndex].Visible := True;
end;
... oder gleich alles in einer Procedure:
Delphi-Quellcode:
Procedure TFormMain.Radio_WasWeisIchClick(Sender: TObject);
Var
i : Integer;
begin
For i := 0 TO MyObjectList.Count -1 DO
MyObjectList.Items[i].Visible := False;
MyObjectList.Items[Radio_WasWeisIch.ItemIndex].Visible := True;
end;
Hinweis: Alles ungetestet ...