Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TObjectList<T> verursacht AV (https://www.delphipraxis.net/148366-tobjectlist-t-verursacht-av.html)

nat 28. Feb 2010 15:53


TObjectList<T> verursacht AV
 
hallo

ich habe grade einen merkwürdigen fehler bekommen bei der verwendung von generics bei TObjectList.
da ich das problem in einem komplexeren programm hatte, habe ich den fehler mal isoliert und
in einem minimalen test-code reproduziert (also nicht nach dem sinn dieses codes fragen) ;)

Delphi-Quellcode:
{$DEFINE GENERICS}
procedure TForm1.Button6Click(Sender: TObject);
var
  List: TObjectList{$IFDEF GENERICS}<TObject>{$ENDIF};
  Obj: TObject;

  procedure Test();
  begin
    if List.IndexOf(Obj) >= 0 then
      showmessage('Bla')
    else
    begin
      List.Add(Obj);
      Test();
    end;
  end;
begin
  List := TObjectList{$IFDEF GENERICS}<TObject>{$ENDIF}.Create(false);
  Obj := TObject.Create;
  try
    Test()
  finally
    Obj.Free;
    List.Free;
  end;
end;
wenn ich die normale TObjectList verwende, dann wird beim 2. durchlauf von Test() korrekt die meldung ausgegeben.
verwende ich jetzt aber generics, also TObjectList<TObject>, dann bekomme ich beim 2. durchlauf von Test() beim
IndexOf() eine AV. verstehe ich nicht, da es mit der einfachen TObjectList ja problemlos geht!
weiß jemand woran das liegen kann? weil wär schon nervig auf die normale TObjectList deshalb umsteigen zu müssen.

Hawkeye219 28. Feb 2010 16:01

Re: TObjectList<T> verursacht AV
 
Hallo,

du benötigst wohl einen comparer: klick

Gruß Hawkeye

nat 28. Feb 2010 16:18

Re: TObjectList<T> verursacht AV
 
tatsächlich, hat geholfen! besten dank! :)
meinen unmut werde ich hier mal nicht kundtun.
da wurde in dem o.g. thread ja schon alles geschrieben
was ich von mir geben wollen würde! ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 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