PData = ^TData;
TData = object
private
dtype:byte;
procedure SetType(t:byte);
public
idata:THiInt;
sdata:string;
rdata:real;
Next:PHI_Event;
ldata:PData;
property Data_type:byte read dtype write SetType;
end;
...................
procedure TData.SetType;
begin
ldata := nil;
dtype := t;
end;
и во МНОГИХ местах позволяет повыкидывать строки типа:
ldata := nil;
Это я от безысходности: то в одном месте стрельнет, то в другом.... По прикидкам: число мест, где может еще стрельнуть, измеряется сотнями....