您的不同记录类型需要一个公共标题.然后,您可以首先将列表项指针强制转换为该标头类型,以确定要转换为下一个的记录类型.例如:
type
TRecType = (recA, recB, recC);
PRecHeader = ^TRecHeader;
TRecHeader = record
RecType: TRecType;
...
end;
PRecordA = ^TRecordA;
TRecordA = record
Header: TRecHeader;
IntValue: Integer;
end;
PRecordB = ^TRecordB;
TRecordB = record
Header: TRecHeader;
StrValue: String;
end;
PRecordC = ^TRecordC;
TRecordC = record
Header: TRecHeader;
DblValue: Double;
end;
var
PRec: Pointer;
begin
PRec := List[Index];
case PRecHeader(PRec)^.RecType of
recA: use PRecordA(PRec)^.IntValue as needed ...
recB: use PRecordB(PRec)^.StrValue as needed ...
recC: use PRecordC(PRec)^.DblValue as needed ...
end;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1843 次 |
| 最近记录: |