unit UMetroPassenger; interface uses Classes, SysUtils, Generics.Collections; type TStationShape = (ssCircle, ssSquare, ssTriangle, ssStar, ssPlus, ssPentagon, ssDiamond, ssQuarterCircle, ssHexagon, ssCross, ssHalfCircle, ssHeptagon); TStationShapeSet = set of TStationShape; { TMetroPassenger } TMetroPassenger = class Shape: TStationShape; end; { TMetroPassengers } TMetroPassengers = class(TObjectList) function AddNew: TMetroPassenger; end; implementation { TMetroPassengers } function TMetroPassengers.AddNew: TMetroPassenger; begin Result := TMetroPassenger.Create; Add(Result); end; end.