|
@@ -0,0 +1,53 @@
|
|
|
+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.
|