Du kannst Dir natürlich auch eine TMyStateObjectList bauen, die die klassische Objektlist und das Dictionary sowie auch sämtliche Zugriffe kapselt.
Etwa so:
Delphi-Quellcode:
TMyState = record
TS: TDateTime;
State: Integer;
end;
TMyStateObjectList = class
fObjectList: TObjectList;
fDictionary: TDictionary(TObject/TMyState);
procedure AddObject(aObject: TObject);
function GetObject(aIndex: Integer): TObject;
function GetState(aIndex: Integer): TMyState;
end;