tb0695.pp 927 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. program tb0695;
  2. {$APPTYPE CONSOLE}
  3. {$IFDEF FPC}
  4. {$MODE OBJFPC}
  5. {$MODESWITCH ADVANCEDRECORDS}
  6. {$ENDIF}
  7. type
  8. TState = record
  9. strict private
  10. FState: LongWord;
  11. class operator Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Instance: TState);
  12. public
  13. property State: LongWord read FState;
  14. end;
  15. var
  16. initdone: Boolean = False;
  17. class operator TState.Initialize({$IFDEF FPC}var{$ELSE}out{$ENDIF} Instance: TState);
  18. begin
  19. Writeln('TState now being initialised');
  20. initdone := True;
  21. Instance.FState := 1;
  22. end;
  23. type
  24. TSys0 = class(TObject)
  25. FItem: TState;
  26. constructor Create;
  27. end;
  28. TSys = class(TSys0)
  29. //FItem2: TState;
  30. end;
  31. constructor TSys0.Create;
  32. begin
  33. inherited;
  34. Writeln(ClassName + ' now being created');
  35. Writeln('State=', FItem.State);
  36. end;
  37. var
  38. C: TSys;
  39. begin
  40. Writeln('Create instance of TSys...');
  41. C := TSys.Create;
  42. if not InitDone then
  43. Halt(1);
  44. C.Free;
  45. end.