Тип записи:
type
pstruct=^tstruct;
tstruct=
record
s:ansistring;
a: array[1..3] of byte;
b: array of integer;
case c:boolean of
true: (
y:string[5];
x:integer;
);
false: (
yy:extended;
xx:byte;
);
end;
Процедура:
procedure FindField(prec:pstruct; pfield:pointer);
prec - адрес записи
pfield - адрес поля записи
|
Примеры:
...
var data:tstruct;
begin
findfield(@data,@data.a[2]);
// вывод - a
data.s:='hello';
findfield(@data,@data.s[3]);
// вывод - s
findfield(@data,@data.s);
// вывод - s
findfield(@data,@data.y[1]);
// вывод - y yy
findfield(@data,@data.x);
// вывод - x yy
findfield(@data,@data.xx);
// вывод - xx
setlength(data.b,5);
findfield(@data,@data.b[2]);
// вывод - b
findfield(@data,@data.b);
// вывод - b
end.
|