Autor Beitrag
Greg1812
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 06.05.08 22:42 
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).

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: 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
ausblenden 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


Zuletzt bearbeitet von Marc. am Di 06.05.08 23:14, insgesamt 15-mal bearbeitet
ConditionZero
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 190

Win XP
Delphi 7 PE, C++ (Dev-C++), HTML+PHP (Dreamweaver MX), JavaScript(MS FrontPage)
BeitragVerfasst: Di 06.05.08 22:57 
Hi...

probiers mal so:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 12.05.08 18:11 
Danke, läuft alles! :)