Einzelnen Beitrag anzeigen

nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#1

TObjectList<T> verursacht AV

  Alt 28. Feb 2010, 15:53
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.
  Mit Zitat antworten Zitat