type TEventCount = class private protected public constructor Create; destructor Destroy; override; function Advance: integer; function Read: integer; procedure Await(WaitCount: integer); published end; TSequencer = class private protected public constructor Create; destructor Destroy; override; function Ticket: integer; published end;