Autor Beitrag
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Fr 22.08.03 21:08 
Hi Leute.

Ich habe eine eigene Peozedur in mein Programm geschrieben, etwa so:

ausblenden Delphi-Quelltext
1:
procedure IndexDo(Sender: TObject; Var Ind: Integer);					


und rufe diese so auf (Beispiel: SpeedButton1.Click):

ausblenden Delphi-Quelltext
1:
IndexDo(Sender, 1);					


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?

_________________
Hasta La Victoria Siempre


Zuletzt bearbeitet von Terra23 am Fr 22.08.03 21:52, insgesamt 1-mal bearbeitet
Tryer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: 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!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Terra23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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. :-)

_________________
Hasta La Victoria Siempre