Einzelnen Beitrag anzeigen

Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#1

verliere Zeiger bei setlength(array,length(array)+1)

  Alt 7. Dez 2004, 13:28
Hallo DPler,
ich habe einen Array, und eine TListview, dessen Tlistitem Einträge jeweils einen Zeiger auf die werte des arrays haben. Komischerweise verliere ich den Zeiger auf das letzte Element des arrays, wenn ich den Array um 1 Element erweitere, also setlength nutze. Eine Dereferenzierung des Zeigers auf das vorher letzte element des Arrays löst jetzt eine exception aus. Mache ich da jetzt was falsch, oder ist das ein Bug?
[Edit]
Delphi-Quellcode:
      
      showmessage((pstringlist(form1.listview1.Items[form1.ListView1.Items.Count-1].Data))^.strings[0]);
      setlength(unit1.workarray, length(unit1.workarray)+1);
      showmessage((pstringlist(form1.listview1.Items[form1.ListView1.Items.Count-1].Data))^.strings[0]);
Das erste showmessage gibt den namen des letzten Films in dem array aus, das zweite löst eine exception aus.
[/Edit]
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat