Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Types of actual and formal var parameters must be identical
Tjeri - Fr 04.09.09 14:57
Titel: Types of actual and formal var parameters must be identical
Ich habe für mein Programm 2 funtions geschrieben, wobei die eine die andere benutzen soll:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| function TPokertisch.isPossible(var x:integer):boolean; begin if (SpielerDabei[x]) AND (SpielerChips[x]>0) then result:=true else result:=false; end; |
Die Fehlermeldung kommt in der 2. function überall dort wo ich auf die erste zugreifen will:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| function TPokertisch.naechsterSpieler(var aktuellerSpieler:integer):integer; var ende:boolean; begin ende:=false; repeat Case aktuellerSpieler of 1: begin if isPossible(4) then begin result:=4; ende:=true; end else aktuellerSpieler:=4; end; 2: begin if isPossible(5) then begin result:=5; ende:=true; end else aktuellerSpieler:=5; end; 3: begin if isPossible(6) then begin result:=6; ende:=true; end else aktuellerSpieler:=6; end; 4: begin if isPossible(2) then begin result:=2; ende:=true; end else aktuellerSpieler:=2; end; 5: begin if isPossible(3) then begin result:=3; ende:=true; end else aktuellerSpieler:=3; end; 6: begin if isPossible(1) then begin result:=1; ende:=true; end else aktuellerSpieler:=1; end; end; until ende=true; end; |
Narses - Fr 04.09.09 15:01
Moin!
Mach das mal so, dann passt das:
Delphi-Quelltext
1: 2: 3: 4:
| function TPokertisch.isPossible(const x: Integer): Boolean; begin Result := SpielerDabei[x] and (SpielerChips[x] > 0); end; |
Grund: Du hast einen Referenz-Parameter verlangt, aber eine Konstante übergeben. :idea:
cu
Narses
Delete - Fr 04.09.09 15:01
Du hast den Parameter als Var deklariert, übergibst aber eine Konstante (4). Ändere die erste Methode mal ab:
Delphi-Quelltext
1:
| function TPokertisch.isPossible(x:integer):boolean; |
Jakob_Ullmann - Fr 04.09.09 15:02
Hast du's schonmal ohne var probiert? Also so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| function TPokertisch.isPossible(x:integer):boolean; begin if (SpielerDabei[x]) AND (SpielerChips[x]>0) then result:=true else result:=false; end; |
Desweiteren würde ich dir folgende Schreibweise empfehlen:
Delphi-Quelltext
1: 2: 3: 4:
| function TPokertisch.isPossible(var x:integer):boolean; begin Result := (SpielerDabei[x]) AND (SpielerChips[x]>0); end; |
EDIT: Hab gar nicht gemerkt, dass so viele schneller waren als ich. :shock:
Tjeri - Fr 04.09.09 15:04
Okay danke, hab keine Fehlermeldung mehr :-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!