Chciałem wygenerować listę jednokierunkową spisującą dane z ListView znajdującego się na innej formatce. Podczas próby wykonania procedury jednak wyskakuje mi AccessViolation. I to kilkakrotnie. Pamiętam, jak miałem ten problem podczas wczytywania na ListView z pliku i tam wystarczyło zmienić ilość iteracji z pętli for, tutaj to jednak nie pomaga. Gdzie leży problem?
var
AtList : PElement;
Root : PElement;
NewOne : PElement;
begin
for i := 0 to (MainForm.ListProszek.Items.Count - 1) do
begin
New(NewOne);
NewOne^.Dane.Name := MainForm.ListProszek.Items[i].Caption;
if Root = nil then
begin
NewOne^.Next := Root;
Root := NewOne;
end
else
begin
AtList := Root;
while (AtList^.Next <> nil) do
begin
AtList := AtList^.Next;
end;
AtList^.Next := NewOne;
NewOne^.Next := nil;
end;
end;
end;
/// Dodaje tu wątek,bo stwierdziłem, że to lepszy dział dla mnie a temtego nie usunę, bo go w ogóle na liście wątków nie widzę.