Witam,
mam następujący problem: mam listę (tablicę dynamiczną) z wskaźnikami (Pointer). Chcę ją wykożystać w następujący sposób - przechowywać w niej obiekty różnych typów. Tak więc dodaję w ten sposób:
var
tmp:TVcpppClass;
begin
tmp:=TVcpppClass.Create;
tmp.val := 'aaaaaaaaaa';
AddListElement(tmp);
gdzie TVcpppClass to moja klasa z polem "val:string" a funkcja AddListElement(data:pointer); dodaje do tablicy dynamicznej element. No i wszystko pięknie, aż do czasu gdy chcę odwołać się do któregoś z obiektów : showmessage(TVcpppClass(FList[0]).val);
powoduje Access Violation. Sprawdziłem, okazuje się że FList[0] = nil. A jednak, na sto procent przypisywałem do elementu 0 jakąś wartość. Odnosze więc wrażenie że element tmp zostaje automatycznie zwolniony (czyli wskaźnik na liście wskazuje na błędny obszar pamięci).
Proszę o pomoc!
Pozdrawiam
vcppp