Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Nicht genügend wirkliche Parameter??
Lauzijungs - So 02.04.06 21:24
Titel: Nicht genügend wirkliche Parameter??
Hallo,
habe schon mehrmals folgende Fehlermeldung zu stehen gehabt:
[Fehler] Unit1.pas(40): Nicht genügend wirkliche Parameter
Zum Beispiel in meinem derzeitigen Quelltext:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| PROCEDURE FindeErstenUndLetzten(Eing:string; var EB, LB:char); var anz:integer; BEGIN EB:=Eing[1]; anz:=length(Eing); LB:=Eing[anz]; end;
procedure TForm1.Button1Click(Sender: TObject); var Eing,a:string; BEGIN Eing:=Edit1.Text; a:=FindeErstenUndLetzten(Eing); Label1.Caption:=a; END; end. |
Was will mir diese Fehlermeldung denn sagen? In diesem Fall bezieht sie sich auf die Zeile, wo ich den Pfeil hingesetzt hab. Wo liegt da mein Fehler?
Würde mich über Antwort sehr freuen.
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Born-to-Frag - So 02.04.06 21:27
weil er noch 2 Parameter mehr will: EB und LB
Lauzijungs - So 02.04.06 21:43
Und was soll ich da zu diesen beiden Parametern noch schreiben?
Ironwulf - So 02.04.06 21:46
im grunde weglassen, und ne zeile tiefer deklarieren, da die eh nit als weitergegeben parameter verwendest
Lauzijungs - So 02.04.06 21:53
Inwiefern soll ich sie denn nochmal deklarieren?
Reicht da nicht das was da oben steht?
Und wo sollte ich das dann hinschreiben?
Ironwulf - So 02.04.06 21:56
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| PROCEDURE FindeErstenUndLetzten(Eing:string); var anz:integer; EB, LB:char BEGIN EB:=Eing[1]; anz:=length(Eing); LB:=Eing[anz]; end; |
mkinzler - So 02.04.06 21:59
Dann kann er sie aber auch gleich ganz weglassen! Oder halt die Funktion so wie deklariert aufzurufen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); var Eing,a:string; eb, lb: char; BEGIN Eing:=Edit1.Text; a:=FindeErstenUndLetzten(Eing, eb, lb); Label1.Caption:=a; END; |
Lauzijungs - So 02.04.06 22:03
Und was schreib ich dann in die Prozedur TFormButton1.Click?
mkinzler - So 02.04.06 22:06
So wie du es aufrufst kann ja nicht so funktionieren, es ist ja eine Prozedur keien Funktion. Eine Frage was soll an a zurückgegeben werden?
Lauzijungs - So 02.04.06 22:26
Stimmt, könnte ich auch gleich so schreiben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); var Eing,a:string; EB, LB:char; BEGIN Eing:=Edit1.Text; Label1.Caption:=FindeErstenUndLetzten(Eing, eb, lb); END; end. |
Nur besteht jetzt das Problem, dass er mir sagt:
Inkompatible Typen 'string' und procedure'
bei der Zeile Label1.Cation
Moderiert von
raziel: Delphi-Tags hinzugefügt
JayEff - So 02.04.06 22:29
Yo also entweder du schreibst
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function ersterUletzter(eingabe:String):array[0..1] of String; begin result[0]:=Eingabe[1]; result[1]:=Eingabe[length(Eingabe)]; end;
e:=ersterUletzter('hallo')[0]; l:=ersterUletzter('hallo')[1]; |
oder
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure ersterUletzter(eingabe:String; var erster,letzter:Char); begin erster:=Eingabe[1]; letzter:=Eingabe[length(Eingabe)]; end;
ersterUletzter('hallo',e,l); |
*edit: kleiner fehler..
mkinzler - So 02.04.06 22:29
Du hast das irgendwie falsch verstanden eine Prozedur liefret keinen Rückgabewert. Was also soll zurückgegeben werden.
Lauzijungs - So 02.04.06 22:47
Oh stimmt, hast Recht. Ich seh grad, dass wir das in ne Function umschreiben sollten, tut mir Leid.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!