E2018 Record, Objekt oder Klassentyp erforderlich (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Der Compiler erwartete, die Typbezeichnung zu finden, mit dem ein Datensatz, ein Objekt oder eine Klasse festgelegt wurde, konnte jedoch keine Typbezeichnung finden.
program Produce; type RecordDesc = class ch : Char; end; var pCh : PChar; r : RecordDesc; procedure A; begin pCh.ch := 'A'; (* Fall 1 *) with pCh do begin (* Fall 2 *) end; end; end.
Für diesen Fehler gibt es zwei mögliche Ursachen: Im ersten Fall besteht der Fehler in der Anwendung von '.' auf ein Objekt, das kein Datensatz ist. Im zweiten Fall resultiert der Fehler aus der Verwendung einer Variablen, die nicht den richtigen Typ für eine WITH-Anweisung hat.
program Solve; type RecordDesc = class ch : Char; end; var r : RecordDesc; procedure A; begin r.ch := 'A'; (* Fall 1 *) with r do begin (* Fall 2 *) end; end; end.
Die einfachste Möglichkeit zur Behebung dieses Fehlers besteht darin, das Symbol "." und WITH nur für Datensatz-, Objekt- und Klassenvariablen zu verwenden.