Autor |
Beitrag |
Lauzijungs
Hält's aus hier
Beiträge: 13
|
Verfasst: So 02.04.06 21:24
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
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: So 02.04.06 21:27
weil er noch 2 Parameter mehr will: EB und LB
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
Lauzijungs 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 02.04.06 21:43
Und was soll ich da zu diesen beiden Parametern noch schreiben?
|
|
Ironwulf
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: So 02.04.06 21:46
im grunde weglassen, und ne zeile tiefer deklarieren, da die eh nit als weitergegeben parameter verwendest
|
|
Lauzijungs 
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
      
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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; |
_________________ Markus Kinzler.
|
|
Lauzijungs 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 02.04.06 22:03
Und was schreib ich dann in die Prozedur TFormButton1.Click?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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?
_________________ Markus Kinzler.
|
|
Lauzijungs 
Hält's aus hier
Beiträge: 13
|
Verfasst: 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
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: 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..
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Zuletzt bearbeitet von JayEff am Mo 03.04.06 13:11, insgesamt 2-mal bearbeitet
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 02.04.06 22:29
Du hast das irgendwie falsch verstanden eine Prozedur liefret keinen Rückgabewert. Was also soll zurückgegeben werden.
_________________ Markus Kinzler.
|
|
Lauzijungs 
Hält's aus hier
Beiträge: 13
|
Verfasst: So 02.04.06 22:47
Oh stimmt, hast Recht. Ich seh grad, dass wir das in ne Function umschreiben sollten, tut mir Leid.
|
|