Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Tatsächliche Var-Parameter.. (Done)
Terra23 - Fr 22.08.03 21:08
Titel: Tatsächliche Var-Parameter.. (Done)
Hi Leute.
Ich habe eine eigene Peozedur in mein Programm geschrieben, etwa so:
Delphi-Quelltext
1:
| procedure IndexDo(Sender: TObject; Var Ind: Integer); |
und rufe diese so auf (Beispiel: SpeedButton1.Click):
Daraufhin bekomme ich diese Fehlermeldung (Wortlaut weiß ich jetzt nicht, ich habe Delphi vor Wut zugemacht), daß die angegebenen Var-Parameter nicht mit den tatsächlichen Var-Parametern übereinstimmen. Ich habe in die Hilfe geschaut und da stand das anhand eines Byte. Ich kann die Prozedur nur mit Hilfe eines Byte aufrufen, wenn er verlangt wird, sprich:
Will ich mein Prozedur (mit dem Integer) aufrufen, muß ich einen Integer als Parameter übergeben.
Aber: Das tue ich doch, oder?
Tryer - Fr 22.08.03 21:14
Var heist soviel wie variable, oder veränderlich, dient also dazu einen Wert aus der Prozedur zurückzugeben.
Da Du eine Konstante übergibst geht das nicht und Delphi meckert.. völlig zu recht.
MfG,
Tryer
Keldorn - Fr 22.08.03 21:16
in solchen Sachen erklären bin ich nicht gut :oops: , das können andere besser . aber du kannst keine Zahl an einen VAR -Paramter übergeben.
gugg mal in der Hilfe "Wert- und Variablenparameter"
ich weiß nicht, was bei indexdo passiert/passieren soll und warum du das var brauchst, wenn du eine Zahl übergibst. in deinem Fall müßtest du schreiben
IndexDo(Sender, i);, ob das Sinn hat, weiß ich nicht, da ich den restlichen code nicht kenne
Mfg Frank
edit : zu langsam
Motzi - Fr 22.08.03 21:27
Bei var-Parametern wird intern nur ein Pointer übergeben anstatt einer Kopie, damit die aufgerufene Funktion den Variableninhalt des übergebenen Parameter für die aufrufende Funktion verändern kann. Daher muss einem var-Parameter auch immer eine Variable übergeben werden und keine konstanten Werte wie bei dir zB eben 1!
Terra23 - Fr 22.08.03 21:52
Huch. :oops:
Ich danke euch für eure Antworten. Ich habe jetzt einfach das Wort Var rausgeschmissen (wie es in meinen Aufzeichnungen auch steht :oops:) und nun funktioniert es. Ich danke euch. Ich weiß wirklich nicht, was da in mich gefahren ist, daß ich sowas gemacht habe. :-)
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!