Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Var Parameter (https://www.delphipraxis.net/138831-var-parameter.html)

PhilmacFLy 18. Aug 2009 09:22


Var Parameter
 
Hoi DP

Ich hab folgendes Problem, und zwar hab ich folgende procedure

Delphi-Quellcode:
procedure Tform1.geht(var Reihe: Integer);
begin
case Reihe of
1:
//
end;
end;
und wollte diese wie folgt aufrufen

Delphi-Quellcode:
geht(1);
Soweit so gut/schlecht jetzt bekomm ich aber foglende Fehlermeldung:

Delphi-Quellcode:
[Fehler] viergewinnt_main.pas(660): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Vllt seh ichs einfach nicht oder hab nen Denkfehler, aber ich find ihn nicht. Wäre sehr dankbar über eine Hilfestellung.

DeddyH 18. Aug 2009 09:23

Re: Var Parameter
 
1 ist eine Konstante, die kannst Du nicht als var übergeben. So sollte es funktionieren:
Delphi-Quellcode:
var Zahl: integer;
begin
  Zahl := 1;
  geht(Zahl);
end;

Sharky 18. Aug 2009 09:25

Re: Var Parameter
 
Zitat:

Zitat von PhilmacFLy
...
Delphi-Quellcode:
geht(1);
...

Hai PhilmacFly,

im Procedureheader sagst Du das Du eine Variable übergibst. Aber Du übergibst eine "Konstante" nämlich die 1.

Der Rüsselmops war schneller

PhilmacFLy 18. Aug 2009 09:30

Re: Var Parameter
 
Ok ist es auch möglich das direkt als Konstante zu übergeben, da ich damit sage in welcher Spalte (hab ich code falsch :oops: ) der stein fällt und da es ziemlihc unvorteilhaft wäre immer erst eine variable zu deklarieren.

DeddyH 18. Aug 2009 09:32

Re: Var Parameter
 
Wenn der Wert innerhalb der Methode niemals verändert wird, macht die Übergabe by Reference keinen Sinn. Lass also einfach das "var" weg.
Delphi-Quellcode:
procedure Tform1.geht(Reihe: Integer);

himitsu 18. Aug 2009 09:32

Re: Var Parameter
 
wenn du Reihe nicht änder willst, dann laß besser einfach nur das VAR weg
und laß den Rest so wie er ist.

[edit]
bei den ganzen RedBoxes warDeddyH nun schneller :cry:

PhilmacFLy 18. Aug 2009 09:35

Re: Var Parameter
 
Ok Danke.
Gut das es DP und solche Leute wie euch gibt, sonst würd ich immer noch an irgendwelchen Problemen hängen, und häte Delphi programmiern wahrscheinlich schon aufgegeben. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz