Delphi Fehlermeldung beim Aufruf einer Prozedur

...komplette Frage anzeigen

3 Antworten

Wenn die variable d einen anderen datentyp als real hat dann funktioniert das nicht, sonst müsste es eig funktionieren...

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Walodex
06.10.2014, 17:15

Nein, ein Typenkonflikt ist es definitiv nicht. Trotzdem danke.

0

Welche Delphi-Version benutzt du denn?

Die Prozedur "test" existiert womöglich bereits in einer anderen Unit.

Benenne deine Prozedur doch einfach mal in "test123" um, und probiers damit nochmal. Falls du dann keinen Fehler mehr bekommst, kannst du deine Prozedur ja auch in etwas Aussagekräftigeres umbenennen. :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
03.10.2014, 09:31

PS: Dieser Fehler tritt oft auf, wenn du eine Prozedur anstatt einer Klassen-Methode definierst!

Ich kenne deinen gesamten Code nicht, aber falls du so etwas wie eine Klasse hast, probier mal folgende Definition:

procedure DeineKlasse.test(b:real);

Natürlich musst du "DeineKlasse" durch einen entsprechenden Klassennamen ersetzen.

Viel Erfolg! :)

0

Also, der Fehler sagt ja, daß "test" die falsche Anzahl an Parametern hat.

Das heißt im Klartext, daß du mehrere Proceduren oder Funktionen hast, die gleich heißen, aber nicht gleich funktioneren.

Beispielsweise hast du in Unit1 eine Procedure Test(a:real); und in Unit2 eine Procedure Test(b:real; s:String);

Jetzt tippst du gerade in Unit2 herum und willst aber nur die Test-Procedure aufrufen aus Unit1.

Dann schreibe einfach beim Aufruf: unit1.test(d); Damit sollte der Compiler wissen, welche Procedure du genau meinst.

Innerhalb der gleichen Unit kannst du (bei Delphi, weiß nicht ob das bei Larzarus geht) mit overload proceduren mit gleichem Namen, aber unterschiedlicher Parameterzahl definieren:

procedure Test(a:real); overload; begin ... end;

procedure Test(b:real; s:string); overload; begin ... end;

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Walodex
06.10.2014, 17:23

Nun, das Projekt befindet sich noch in der absoluten Anfangsphase. Tatsächlich ist diese Prozedur ziemlich wichtig für das weitere Vorgehen, daher ist es wichtig zu wissen, ob ich diese so schreiben kann. Trotzdem ist es möglich, dass es an dem fehlenden Unit1 liegt, da lazarus, bei solchen Sachen ziemlich genau ist =)

Komischerweise habe ich jedoch mitlerweile ein anderes Problem, nämlich in der Deklaration der Prozedur im Kopf der Unit:

 private
procedure test;{ private declarations }      

dazu die Fehlermeldung:

unit1.pas(28,15) Error: Forward declaration not solved "TForm1.test;"

leider weiß ich damit nichts anzufangen, da er an dieser Stelle ja sonst nichts zu meckern hatte. Ich hoffe, du kannst mir da weiterhelfen...

Danke schonmal im vorraus.

0

Was möchtest Du wissen?