program tb0695; {$APPTYPE CONSOLE} {$IFDEF FPC} {$MODE OBJFPC} {$MODESWITCH ADVANCEDRECORDS} {$ENDIF} type TState = record strict private FState: LongWord; class operator Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Instance: TState); public property State: LongWord read FState; end; var initdone: Boolean = False; class operator TState.Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Instance: TState); begin Writeln('TState now being initialised'); initdone := True; Instance.FState := 1; end; type TSys0 = class(TObject) FItem: TState; constructor Create; end; TSys = class(TSys0) //FItem2: TState; end; constructor TSys0.Create; begin inherited; Writeln(ClassName + ' now being created'); Writeln('State=', FItem.State); end; var C: TSys; begin Writeln('Create instance of TSys...'); C := TSys.Create; if not InitDone then Halt(1); C.Free; end.