E2018 Type record, object ou class requis (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Le compilateur attendait de trouver le nom de type spécifiant un enregistrement, un objet ou une classe mais ne l'a pas trouvé.
program Produce;
type
RecordDesc = class
ch : Char;
end;
var
pCh : PChar;
r: RecordDesc;
procedure A;
begin
pCh.ch := 'A'; (* case 1 *)
with pCh do begin (* case 2 *)
end;
end;
end.
Cette erreur peut avoir deux causes. La première est l'application de '.' à un objet qui n'est pas un enregistrement. La deuxième cause est l'utilisation d'une variable qui est d'un type incorrect dans une instruction WITH.
program Solve;
type
RecordDesc = class
ch : Char;
end;
var
r: RecordDesc;
procedure A;
begin
r.ch := 'A'; (* case 1 *)
with r do begin (* case 2 *)
end;
end;
end.
La solution simple pour cette erreur est de toujours vérifier que le '.' et WITH sont tous les deux appliqués uniquement sur les enregistrements, les variables objet ou classe.