Autor Beitrag
Lauzijungs
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
PROCEDURE FindeErstenUndLetzten(Eing:stringvar 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 user profile iconGausi: Delphi-Tags hinzugefügt
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: So 02.04.06 21:43 
Und was soll ich da zu diesen beiden Parametern noch schreiben?
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: So 02.04.06 21:46 
im grunde weglassen, und ne zeile tiefer deklarieren, da die eh nit als weitergegeben parameter verwendest
Lauzijungs Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: So 02.04.06 21:56 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 02.04.06 21:59 
Dann kann er sie aber auch gleich ganz weglassen! Oder halt die Funktion so wie deklariert aufzurufen:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: So 02.04.06 22:03 
Und was schreib ich dann in die Prozedur TFormButton1.Click?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: So 02.04.06 22:26 
Stimmt, könnte ich auch gleich so schreiben:
ausblenden 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 user profile iconraziel: Delphi-Tags hinzugefügt
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: So 02.04.06 22:29 
Yo also entweder du schreibst
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function ersterUletzter(eingabe:String):array[0..1of String;
begin
  result[0]:=Eingabe[1];
  result[1]:=Eingabe[length(Eingabe)];
end;
{aufruf:}
e:=ersterUletzter('hallo')[0];
l:=ersterUletzter('hallo')[1];
//dann ist der erste Buchstabe in e und der letzte in l

oder
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure ersterUletzter(eingabe:Stringvar erster,letzter:Char);
begin
  erster:=Eingabe[1];
  letzter:=Eingabe[length(Eingabe)];
end;
{aufruf:}
ersterUletzter('hallo',e,l);
//dann ist der erste Buchstabe in e und der letzte in l

*edit: kleiner fehler..

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.


Zuletzt bearbeitet von JayEff am Mo 03.04.06 13:11, insgesamt 2-mal bearbeitet
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: So 02.04.06 22:47 
Oh stimmt, hast Recht. Ich seh grad, dass wir das in ne Function umschreiben sollten, tut mir Leid.