Home » Tutorials » Programmierkonzepte » Fehlermeldungen

Fehlermeldungen

Fehler – Jetzt ist Schicht im Schacht

Der wohl beliebteste Fehler:

[Pascal Fehler] Unit1.pas(42): E2003 Undefinierter Bezeichner: 'KennIchNet'

Delphi möchte hier zum Ausdruck bringen, dass es irgendetwas nicht kennt. Meistens ist das auf einen Tippfehler zurückzuführen. Häufig ist aber auch einfach eine benötigte Unit nicht eingebunden oder eine Variable nicht deklariert.
Der Anfängerfehler schlechthin:

[Pascal Fehler] Unit1.pas(42): E2066 Operator oder Semikolon fehlt

Zwei Möglichkeiten: a) in der Zeile davor fehlt ein Semikolon oder b) in der Fehlerzeile fehlt ein Operator(also ein + oder sowas).

[Pascal Fehler] Unit1.pas(42): E2010 Inkompatible Typen: 'Typ1' und 'Typ2'

Heißt etwas umformuliert: „Eigentlich sollte hier Typ1 stehen, aber Typ2 steht da“. Beispiel:

ShowMessage(3);

ShowMessage erwartet einen String. 3 Ist aber ein Integer. Hm… was kann man da machen? Konvertieren:

ShowMessage(IntToStr(3));

Sehr beliebt ist in diesem Zusammenhang auch das Verwechseln von String und TStrings. Dabei ist String eine einzelne Zeichenkette und TStrings eine (abstrakte) Klasse, die mehrere Strings, ähnlich wie in einem Array, zusammenfasst. Memo.Lines ist ein Beispiel dafür. So führt z.B. folgender Code zu einem Fehler:

ShowMessage(Memo1.Lines);

richtig wäre:

ShowMessage(Memo1.Lines.Text);

Was man mit Parametern noch alles falsch machen kann:

[Pascal Fehler] Unit1.pas(42): E2035 Nicht genügend wirkliche Parameter
[Pascal Fehler] Unit1.pas(42): E2034 Zu viele Parameter

Die Erklärung erübrigt sich eigentlich. Delphi will nur sagen, dass man sich die Funktion nochmal gaaanz genau angucken solltest, weil man scheinbar Probleme mit dem Zählen hat…
Zum Schluss noch den Universal-Syntaxfehler schlechthin:

[Pascal Fehler] Unit1.pas(42): E2029 'x' erwartet, aber 'y' gefunden

Meistens bedeutet das, dass man in der vorherigen Zeile ‚x‘ vergessen hat. Manchmal ist das aber auch Ausdruck eines tiefer gehenden Syntaxfehlers. ==> einfach mal in der vorherigen Zeile nachgucken, was nicht stimmt.
Alles in Allem sind Compilerfehler nichts Schlimmes. Eigentlich muss man sie nur lesen, sie verstehen und dann korrigieren. ==> kein großes Kunststück. Anfangs, wenn man Delphi noch nicht so gewohnt ist, tauchen sie andauernd auf, aber mit der Zeit lernt man immer mehr und macht immer weniger Fehler. Sowas wie „undefinierter Bezeichner“ wird mit ziemlicher Sicherheit auch später noch vorkommen, aber gerade die berühmt berüchtigten Semikolons vergisst man schon bald nicht mehr…