so verpackst Du lediglich einen Pointer auf eine Speicherstelle auf dem Stack ins Item... die Daten an dieser Stelle wurden aber inzwischen geändert....
so ist besser:
Delphi-Quellcode:
var guid: PGUID;
begin
New(
guid);
CoCreateGuid(
Guid^);
listview1.Items[0].Data :=
guid;
zum Auslesen:
guid := PGUID(listview1.Items[0].Data)^;
Achtung: irgendwann (spätestens vor dem Entfernen des Items) solltest Du den Speicherplatz mittels
Dispose(PGUID(listview1.Items[0].Data));
wieder freigeben, sonst produzierst Du ein Memory-Leak....