The compiler was looking for a type name that specified a record, object, or class, but none could be found.
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.
In this application, there are two possible causes for the same error. The first is when you use ‘.’ on something that isn’t a record. In the second scenario, a variable of the wrong type is used in a WITH statement.
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.
The simple answer to this problem is to make sure that the ‘.’ and WITH are only used on records, objects, or class variables.
Leave a Reply