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.