Einzelnen Beitrag anzeigen

LoL
(Gast)

n/a Beiträge
 
#1

schleife für radiogroup-controls

  Alt 24. Okt 2003, 20:53
hallo zusammen

ich habe folgendes problem:
da ich meinen code sehr kurz halten will, möchte ich eine prozedur für mehrere ereignisse haben. diese sollte folgendes machen:
ich habe mehrere radiogroup´s mit unterschiedlicher item-anzahl, beispielsweise eine mit 3 mit 4 und 5 items.
nun will ich je nachdem welches item ausgewählt wurde die anderen items der radiogroup deaktivieren. das ist ja auch nicht so schwer->
Delphi-Quellcode:
case radiogroup.ItemIndex of
  0 : for i := 1 to radiogroup.Items.Count - 1 do
        radiogroup.Controls[i].Enabled := false;
  1 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 1) then
          radiogroup.Controls[i].Enabled := false;
  2 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 2) then
          radiogroup.Controls[i].Enabled := false;
  3 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 3) then
          radiogroup.Controls[i].Enabled := false;
  4 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 4) then
          radiogroup.Controls[i].Enabled := false;
  end;
nun meine frage:
kann ich eine case abfrage für alle radiogroups schreiben?
quasi so->
Delphi-Quellcode:
case radiogroup.ItemIndex of
  0 : for i := 1 to radiogroup.Items.Count - 1 do
        radiogroup.Controls[i].Enabled := false;
  1 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 1) then
          radiogroup.Controls[i].Enabled := false;
  2 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 2) then
          radiogroup.Controls[i].Enabled := false;
  3 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 3) then
          radiogroup.Controls[i].Enabled := false;
  4 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 4) then
          radiogroup.Controls[i].Enabled := false;
  if radiogroup.Items.Count = 6 then
  5 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 5) then
          radiogroup.Controls[i].Enabled := false;
  if radiogroup.Items.Count = 7 then
  6 : for i := 0 to radiogroup.Items.Count - 1 do
        if not(i = 6) then
          radiogroup.Controls[i].Enabled := false;
  end;
ich weis das das nicht funzt aber so hab ich mir das gedacht
  Mit Zitat antworten Zitat