Delphi RadioGroup mit Case-Anweisung

Elcrian

Commander
Registriert
Feb. 2008
Beiträge
2.493
Hallo,
kurze Frage:
Ich habe eine RadioGroup die ich gerne einer Case-Anweisung zuweisen würde, d.h. "wenn case 1 ausgewählt, dann deaktiviere ein feld etc."

Konkret:
PHP:
  CASE RadioGroup2.ItemIndex OF
0 : begin // Radius
    edit2.text:=IntToStr(rad);
    edit1.enabled:=true;
    edit2.enabled:=true;
    rad:=0;
    end;
1 : begin // Durchmesser
    edit2.text:=IntToStr(durchm);
    edit2.enabled:=true;
    edit1.enabled:=true;
    durchm:=0;
    end;

Nur passiert da nichts - irgendwie muss man wie ich hörte die Events mit der Procedure verknüpfen. Wie geht das? Nutze Lazarus.

Grüße
 
Vielleicht; ich möchte aber mit der CASE-Anweisung arbeiten, da ich noch einige andere Sachen damit machen werde. Genauer gesagt mehrere Anweisungen, so dass es sonst 10 IF-Schachtelungen würden...
 
Was soll denn dort auch passieren?
edit1 und edit2 sind immer enabled. Also kannst du diese Zeilen auch löschen.

Wenn du ItemIndex 0 drückst, wird rad auf 0 gesetzt.
Drückst du nun ItemIndex 1, wird durchm auf 0 gesetzt.

Damit sind beide Variablen auf 0 und somit wird sich da auch nichts mehr ändern.

Und was soll am OnClick() Event nicht funktionieren?

Code:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  CASE RadioGroup1.ItemIndex OF
    0 : begin // Radius
        edit2.text:=IntToStr(rad);
        edit1.enabled:=true;
        edit2.enabled:=true;
        rad:=0;
        end;
    1 : begin // Durchmesser
        edit2.text:=IntToStr(durchm);
        edit2.enabled:=true;
        edit1.enabled:=true;
        durchm:=0;
        end;
    end;
end;

funktioniert bei mir soweit ganz gut.
Wobei das doch sehr schlechter Programmierstil ist.
Unter Delphi arbeitet man sehr häufig mit Getter- und Setter Methoden, um den Code zu modularisieren. Auch sollen Events am Besten auch nur weitere Funktionen/Prozeduren aufrufen und am Besten keine Anweisungen enthalten.
 

Ähnliche Themen

N
Antworten
12
Aufrufe
1.245
Nichael-E
N
Zurück
Oben