Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Pointer von AddObject wieder freigeben

  Alt 5. Nov 2005, 15:38
Ich versuchs noch mal ein wenig plastisch darzustellen:

Wenn du einer StringList ein Item hinzufügst sieht das im Speicher etwa so aus:
Code:
[Hier steht der Text des Items][$00000000]
Die 0en am Ende sollen 4 Byte reservierten Ram darstellen.
Wenn du nuItems.AddObject('Tolle Sache das',TObject(Button1)) ausführst, sieht dein Programm nach, wo im Speicher denn Button1 liegt. Nehmen wir an, der Button liegt bei $AB23 im RAM dann sieht dein Item im Speicher etwa so aus:
Code:
[Tolle Sache das][$0000AB23]
Wenn du dagegen dir einen Int-Wert merkst, dann sieht es nach
Items.AddObject('Item1', TObject(576)) etwas so aus:
Code:
[Item1][$00000240]
Wenn du das Item löscht, kümmert sich die StringList selbst drum, die 4 Bytes am Ende mit freizugeben, da sie diese ja auch selbst angelegt hat.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat