![]() |
Invalid Pointer TObjectList
Hi Leute,
Ich checks einfach nicht wo der Fehler liegen kann: Ich möchte meine Objekte und Listen alle freigeben, weil sich das Programm sonst extrem aufbläht. Hier ein Auszug meines Codes:
Delphi-Quellcode:
Das Programm läuft trotz des Fehlers aber den Fehler möchte ich natürlich wegbekommenFList := TObjectList.Create; FCSearch := Model.TComputerSearch.Create; FMyCCriteria := Model.TComputerAttributes.Create; //... FList := FCSearch.DBSearch('vague',FMyCCriteria); // FList wird mit "TComputer"-Objekten befüllt I := 0; while (I<FList.Count-1) do begin FMyComputer := Model.TComputer.Create; FMyComputer := FList[I] as Model.TComputer; // Fill the Grid with the information of the FMyComputer object Grid.Cells[0,Grid.RowCount-1] := IntToStr(FMyComputer.GetAttributes.GetID); Grid.Cells[1,Grid.RowCount-1] := FMyComputer.GetAttributes.GetName; Grid.Cells[2,Grid.RowCount-1] := FMyComputer.GetAttributes.GetComment; Grid.Cells[3,Grid.RowCount-1] := FMyComputer.GetAttributes.GetModel; Grid.RowCount := Grid.RowCount +1; FMyComputer.Free; Inc(I); end; FList.Clear; // UNGÜLTIGE ZEIGEROPERATION FList.Free; // UNGÜLTIGE ZEIGEROPERATION FCSearch.Free; FMyCCriteria.Free; Weiß einer Rat ? |
Re: Invalid Pointer TObjectList
TObjectList gibt alle Objekte die es enthält selber frei - außer man instantiiert es mit AOwnsObjects = False :wink:
[edit]Parametername korrigiert.[/edit] |
Re: Invalid Pointer TObjectList
Ok Vielen Dank, wusste ich nicht.
|
Re: Invalid Pointer TObjectList
FMyCompuer musst du auch nicht erzeugen, bevor du auf die Liste zugreifst. Sonst hast du ein Speicherleck.
|
Re: Invalid Pointer TObjectList
Hmm ok danke schonmal guter Anfang die Lecks zu finden. Ich weiß sonst echt nicht mehr wo die 3KB pro DB abfrage herkommen :/
|
Re: Invalid Pointer TObjectList
Zitat:
PS: Try-finally nutzen :wink: |
Re: Invalid Pointer TObjectList
Zitat:
|
Re: Invalid Pointer TObjectList
Zitat:
Delphi-Quellcode:
eine Adressverletzung bekommen... ?
FList := TObjectList.Create;
|
Re: Invalid Pointer TObjectList
Hi,
Delphi-Quellcode:
FList := TObjectList.Create;
FCSearch := Model.TComputerSearch.Create; FMyCCriteria := Model.TComputerAttributes.Create; //... Sollte hier zwischen nicht mit FList gearbeitet werden dann ist obiges Create überflüssig und erzeugt ein Speicherleck // WENN hier mit FList gerarbeitet wird, dann muss es aber vor der Zeile hier unten wieder freigegeben werden. // Sonst gibts ebenfalls ein Speicherleck! FList := FCSearch.DBSearch('vague',FMyCCriteria); // FList wird mit "TComputer"-Objekten befüllt |
Re: Invalid Pointer TObjectList
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz