![]() |
[solved] TObjectList<>.Remove führt zur AV, .Clear nic
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,
ich bekomme komischerweise bei TObjectList<TVirtualWall>.Remove(...) eine AV. Nun laut Debugger ist OwnObjects aus (was auch so gewünscht ist) und ansonsten sieht auch alles gut aus (die Liste hat ein Objekt, und wenn man sich das anguckt ist es genau das was ich da übergebe). Nun habe ich aus juks und dollerei (schreibt man das so? :D ) einfach mal TObjectList<TVirtualWall>.Clear aufgerufen und dort kommt es dann zu keiner AV sogar nicht beim Problematischen Aufruf danach. Aktuell habe ich echt keinen Schimmer, woran das liegen könnte. Ich hänge einfach mal alles dazu an ;) So könnt ihr (Andorra2D vorausgesetzt) das einfach ausprobieren: Platziere zwei Wände nebeneinander und lösche dann eine. Dann sollte Exception ausgelöst werden. MfG Fabian |
Re: TObjectList<>.Remove führt zur AV, .Clear nicht?!
Hi,
Wie hast du diese Liste erstellt? Je nachdem gibt es da einen Bug, dass der Default-Comparer nicht gesetzt wird. Und dann knallt es. Empfehlung des Tages:
Delphi-Quellcode:
Gruß
var List: TObjectList<TVirtualWall>;
begin List := TObjectList<TVirtualWall>.Create(IComparer<TVirtualWall>(nil)); Neutral General |
Re: TObjectList<>.Remove führt zur AV, .Clear nicht?!
7z? Geht's nicht auch normal? :?
Zitat:
|
Re: TObjectList<>.Remove führt zur AV, .Clear nicht?!
Moin,
Zitat:
Delphi-Quellcode:
Und jup, mit Comparator klappt es.
constructor TVirtualWall.Create;
begin inherited; FWallTop := TVirtualWallList.Create(false); FWallLeft := TVirtualWallList.Create(false); FWallRight := TVirtualWallList.Create(false); FWallBottom := TVirtualWallList.Create(false); end; Zitat:
Naja das Problem wurde inzwischen behoben. MfG Fabian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz