Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
17. Jul 2010
FArray := '';
Move(FArray, FArray, (Count - 1 - i) * SizeOf(Pointer));
Pointer(FArray) := nil;
SetLength(FArray, Count - 1);
Aber, wie gesagt, nimm lieber eine Stringliste .. diese ist nur unwesentlich größer, der Overhead ist minimal und man erspart sich viel Arbeit und eventuelle Probleme und nur ein Delete(i) wäre auch verständlicher.
Und vorallem, wenn man nciht genau weiß was man...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
17. Jul 2010
Wenn du die Stringreferenzen nicht korrekt behandelt, dann muß es ja probleme geben.
der String, welchen du "angelich" löschts ... da überschreibst du nur den "Zeiger", aber der String selber bleibt als Speicherleck zurück.
Und als Ausgleich hast du durch dein Move auch noch den letzen String im Array mit einer doppelten Referenz, welcher aber nicht in der Referenzzählung auftaucht, womit...