Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#29

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 26. Sep 2010, 20:48
Moin,
also ich weiß nicht was du vor hast, aber sowas geht nicht:
Delphi-Quellcode:
var
  x, y : THaus;
begin
  x := THaus.Create;
  y := x;
  x.Free;
  y.maleAn(Grün);
Weil sobald du x.Free aufrufst ist auch das Haus y zerstört.

Du hast jetzt folgendes gemacht: Du hast eine Combobox befüllt. Und die Objekte dabei schon freigegeben. Und da man erst nach der Aktion was auswählen kann, sind also alle Objekte bis auf das letzte freigegeben.

Was solltest du anstelle machen? Das habe ich schon gesagt: Mach dir eine TObjectList in der du die Element auch speicherst, und sobald du sie nicht mehr brauchst kannst du sie alle löschen indem du TObjectList.Clear aufrufst (oder die Liste freigibst). Das setzt voraus das OwnObjects auf true steht.

Eventuell kannst du aber auch OwnObjects auf true stellen, von der Liste der ComboBox.

MfG
Fabian

PS: Und falls du glaubst du gibst zu wenig Objekte frei: Schalte doch einfach ReportMemoryLeaksOnShutdown := true; .
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat