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 nu
Items.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:
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.