Код работал, изменений не вносилось (по крайней мере я не помню),
и вдруг перестало компилится. Привожу часть кода относящуюся к проблеме
- Код: Выделить всё
type
PPField = ^PField;
PField = ^TField;
TField = record
val: pointer;
at: byte;
cls: byte;
ln: byte;
name: pointer;
comm: pointer;
end;
PBase = ^TBase;
TBase = record
rlz: pointer;
teg: byte;
settype: byte;
attr: byte;
vers: byte;
bs: PBS;
tcm: ppfield;
tfd: pointer;
filename: pchar;
ind: pointer;
comm: pchar;
name: pchar;
lq: word;
cntopen: word;
end;
pfield_array = array [1..100, 1..200] of pfield;
pbase_array = array [1..200] of pbase;
ppfield_array = ^pfield_array;
ppbase_array = ^pbase_array;
var
pfield_array_base: ppfield_array;
pfield_array_sub: ppfield_array;
ppbase_array_base: ppbase_array;
function gst(array_off_pfield: ppfield_array; num_ppbase: integer): integer;
var
i: integer;
begin
i := 1;
while ((ppbase_array_base[num_ppbase].tcm)^ + i - 1)^ <> nil) do // Unit1.pas(1071,48) Error: Operation "+" not supported for types "PField" and "LongInt"
begin
array_off_pfield[num_ppbase, i] := ((ppbase_array_base[num_ppbase].tcm)^ + i - 1)^; // Unit1.pas(1071,48) Error: Operation "+" not supported for types "PField" and "LongInt"
i := i + 1;
end;
Result := i - 1;
end;
Я всегда наивно полагал что тип pointer и походящие от него типы можно инкрементировать и декрементировать
Где я накосячил, подскажите !