AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi [solved] TObjectList<>.Remove führt zur AV, .Clear nicht?!

[solved] TObjectList<>.Remove führt zur AV, .Clear nicht?!

Ein Thema von xZise · begonnen am 3. Apr 2010 · letzter Beitrag vom 3. Apr 2010
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[solved] TObjectList<>.Remove führt zur AV, .Clear nic

  Alt 3. Apr 2010, 01:13
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? ) 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
Angehängte Dateien
Dateityp: 7z drawball_editor_203.7z (520,9 KB, 4x aufgerufen)
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: TObjectList<>.Remove führt zur AV, .Clear nicht?!

  Alt 3. Apr 2010, 01:29
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:
var List: TObjectList<TVirtualWall>;
begin
  List := TObjectList<TVirtualWall>.Create(IComparer<TVirtualWall>(nil));
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: TObjectList<>.Remove führt zur AV, .Clear nicht?!

  Alt 3. Apr 2010, 01:31
7z? Geht's nicht auch normal?

Zitat von Delphi-Kompiler:
[MSBuild Fehler] Unerwarteter Fehler bei der BRCC32-Aufgabe.
System.IO.FileNotFoundException: Die Datei ".\DrawBall Editor\extra.rc" konnte nicht gefunden werden.
Dateiname: ".\DrawBall Editor\extra.rc"
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
bei Borland.Build.Tasks.Common.CommandLineTask.CreateT empFileIfNecessary(ITaskItem basedOn)
bei Borland.Build.Tasks.Common.CommandLineTask.Execute ()
bei Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask (ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: TObjectList<>.Remove führt zur AV, .Clear nicht?!

  Alt 3. Apr 2010, 10:14
Moin,
Zitat von Neutral General:
[...]Wie hast du diese Liste erstellt? Je nachdem gibt es da einen Bug, dass der Default-Comparer nicht gesetzt wird. Und dann knallt es.[...]
Naja ganz normal:
Delphi-Quellcode:
constructor TVirtualWall.Create;
begin
  inherited;
  FWallTop := TVirtualWallList.Create(false);
  FWallLeft := TVirtualWallList.Create(false);
  FWallRight := TVirtualWallList.Create(false);
  FWallBottom := TVirtualWallList.Create(false);
end;
Und jup, mit Comparator klappt es.

Zitat von Panthrax:
7z? Geht's nicht auch normal? [...]
Ja: 7z ?

Naja das Problem wurde inzwischen behoben.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz