Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Wahl zwischen zwei Functions=>Radiogroupbox!?


Greg1812 - Di 06.05.08 22:42
Titel: Wahl zwischen zwei Functions=>Radiogroupbox!?
Hallo!
Ich habe zwei Functions in meiner Unit und möchte mit einer RadioGroupBox zwischen diesen beiden wählen. Das Ganze soll bei der Betätigung von einem Button geschehen. Also das Programm soll prüfen, welche der beiden RadioGroupBox-Elemente ausgewählt sind und dann nach der jeweiligen Function arbeiten.
Vom Vorgehen vergleichbar mit der Berechnung der Fakultät von einer beliebigen Zahl auf iterative und/oder rekursive Art (in einem Programm, auch mit der RadioGroupBox).


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
PROCEDURE TForm2.bt_umdrehenClick (Sender : TObject);
           BEGIN 
               CASE rg_wahl.ItemIndex {richtig?} OF
                 0 : rekursive Function
                 1 : iterative Function 
               END;
           END;

Wobei "iterativ" und "rekursiv" einfach für x-beliebiges steht.
Ich weiß allerdings erstens nicht, ob das vom Vorgehen richtig, oder zumindest teilweise richtig ist, und, zweitens, wie ich die Functions aufrufe!? Also  0 : rekursiv / iterativ ??

Ich freue mich über Richtigstellung meines kläglichen Versuchs :oops: und über Vorschläge!

lg


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 06.05.2008 um 22:46


Marc. - Di 06.05.08 22:56

Hi Greg!
Funktionen rufst Du, wie gewohnt, mit ihrem Namen auf.
Sollten mehrere Befehle je Case-Of Ereignis von Nöten sein, so sind begin und end entsprechend zu setzen. :P

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
PROCEDURE TForm2.bt_umdrehenClick (Sender : TObject);
           BEGIN 
               CASE rg_wahl.ItemIndex OF
                 0 : begin
                        ergebnis := rekursiv(10);
                        //... tu was
                     end;
                 1 : ergebnis := iterativ(10);
               END;
           END;

Bei der Fakultät sollte das ergebnis wohl vom Typ Integer sein. ;)
PS:
Stattdessen hättest Du das ganze auch mit einer Prozedur lösen können, was ja letztendlich nichts anderes als eine Funktion ohne Rückgabewert ist. In C eine Funktion mit VOID.
D.h. übergabe einer Referenz via var-Parameter. In der DOH sollten Infos dazu bezüglich genügend Infos finden. ;)

Cheers,
Marc


ConditionZero - Di 06.05.08 22:57

Hi...

probiers mal so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if RadioGroup1.Buttons[0].Checked = true then
  begin
  ShowMessage('x');
  end;
if RadioGroup1.Buttons[1].Checked = true then
  begin
  ShowMessage('y');
  end;


greet


Greg1812 - Mo 12.05.08 18:11

Danke, läuft alles! :)