Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

Re: Mehreren RadioGroups eine Anweisung zuweisen

  Alt 7. Feb 2007, 15:36
Ich bin mir nicht sicher, ob ich Dich richtig verstehe. Eine Möglichkeit wäre, einen einheitlichen EventHandler für alle RadioGroups einer TabPage festzulegen:
Delphi-Quellcode:
procedure TabPage1_RadioGroupsClick(Sender: TObject)
begin
  button1.visible := (RadioGroup1.ItemIndex >= 0)
                 and (RadioGroup2.ItemIndex >= 0)
                 and (RadioGroup3.ItemIndex >= 0);
end;
Das kann noch erweitert werden mit einer Regelung für das ganze PageControl:
Delphi-Quellcode:
procedure PageControl_RadioGroupsClick(Sender: TObject)
var ActualPage: TTabSheet;
    i0: int;
    Result: bool;
    btnWeiter: TButton;
begin
  ActualPage := (Sender as TPageControl).ActivePage;
  Result := false;
  btnWeiter := nil;
  // alle Controls der aktiven Seite durchgehen
  for i0 := 0 to ActualPage.Controls.Count - 1
  do begin
    // wenn es sich um eine RadioGroup handelt, dann ItemIndex prüfen
    if ActualPage.Controls[i0] is TRadioGroup
    then Result := Result and ((ActivePage.Controls[i0] as TRadioGroup).ItemIndex >= 0)
    else begin
      if ActualPage.Controls[i0] is TButton
      then begin
        if (ActualPage.Controls[i0] as TButton).Caption = 'Weiter'
        then btnWeiter := ActualPage.Controls[i0] as TButton;
      end;
    end;
  end;
  // Ergebnis zuordnen
  btnWeiter.visible := Result;
end;
Wenn die Maßnahmen nicht klar sind, bitte in der Hilfe nachschlagen; danach kann ich es noch erläutern.

Viel Erfolg! Jürgen

/Edit: Das zweite Verfahren habe ich mit der Prüfung des Buttons noch verbessert. Siehe die Erläuterungen in #5.

PS. Ohne Gewähr - siehe meine Signatur.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat