Hi Pfoto!
Du bist schon ziemlich nah dran. Das Merken funktioniert so (wie du das schon richtiger-weise erkannst hast):
Listbox.Items.AddObject('Item 1', TObject(IntegerWert));
Den Wert bekommt du dann über:
Integer(Listbox.Items.Objects[1])
Freigeben musst du hier nichts, weil du zum Merken des Wertes einen Speicherbereich nimmst, der von der Stringlist genutzt wird. Dieser Bereich wird beim "Items.Add" reserviert und beim "Items.Delete" o.ä. wieder freigeben. Ein Free an dieser Stelle ist überflüssig bzw. sogar eine Fehlerquelle denn: Nehmen wir an du merkst dir einen Int-Wert 576 so:
Listbox.Items.AddObject('Item 1', TObject(576));
. Wenn du dann ein Free aufrufst, würde Delphi bzw. dein Programm versuchen, ein angenommenes TObject ab der Adresse $240 (dez: 576) im
RAM freizugeben. Dies wiederum könnte zu einer EAccessVioalation führen.
So, genug geschwafelt, wahrscheinlich hast du das alles schon geahnt.