Wie gesagt ist das Problem tatsächlich ein fehlendes New() gewesen.
Mich würde dennoch interessieren, wieso die Daten trotzdem "accessible" waren und ausgelesen wurden, obwohl das New() fehlte.
Die neue Proc sieht nun so aus:
Delphi-Quellcode:
procedure TASManForm.FillASListBox(ASList: TTC7AutoStart; FilterSet: TListFilter);
var
i: integer;
ASStruc: TTC7AutoStartStruc;
ASPointer: PTTC7AutoStartStruc;
begin
DisposeList(ListBox_AS);
ListBox_AS.Clear;
if ASList.Count>0 then begin
ListBox_AS.Items.BeginUpdate;
for i:=0 to ASList.Count-1 do begin
New(ASPointer); //<- hrhr
ASPointer := ASList[i];
ASStruc := ASPointer^;
if ASStruc.AutoStartDangerLevel in FilterSet then begin
ListBox_AS.Items.AddObject(ASStruc.FileData.FileName, TObject(ASPointer));
end;
end;
ListBox_AS.Items.EndUpdate;
end;
end;
Erst wenn man dreimal auf Holz klopfen will, stellt man fest, dass die Welt nur noch aus Plastik und Aluminium besteht.