Einzelnen Beitrag anzeigen

LeoDD

Registriert seit: 30. Jul 2003
43 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Dispose auf Objects einer TCheckListBox

  Alt 20. Okt 2008, 12:00
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.
  Mit Zitat antworten Zitat