AW: Adressen von ListItems ändern sich
5. Dez 2014, 10:27
Also ich bin mir ziemlich sicher, das hier ein overrun-Problem besteht, d.h. es wird irgendwann irgendwo etwas überschrieben. Das íst vielleicht beim alten Delphi nicht aufgefallen, weil der Memory-Manager anders funktioniert hat, aber jetzt vielleicht.
Verwende vielleicht auch mal FastMM im FullDebugMode, schalte RangeCheck an, Overflowchecks auch usw. Du kannst ach Sentinel-Variablen einführen, oder die Referenz an anderer Stelle nochmals sichern und dann prüfen, ob die Referenzen noch identisch sind (Aber auch nur, wenn die vorherigen Maßnahmen nichts bringen)
Die ListViewItems werden vom Delphi-Control verwaltet. Über 'Items.Add' wird einfach nur ein neues TListItem instantiiert´. Das von Uwe beschriebene 'OwnerDraw'-"Problem" ist nur in "GetItem(Item : TLVItem)" vorhanden, und ob da ein Problem draus wird, würde ich bezweifeln. Denn dieses 'GetItem' hat mit dem Getter von 'Items[Index]' nichts zu tun, denn 'Items' ist eine Liste mit eigenem Getter und liefert einfach das Element an der Stelle zurück (soweit ich mich erinnere). Da auch die Liste an sich nicht verändert wird, sollte es daran eigentlich nicht liegen.
|