fpc/tests/tbs/tb0695.pp

54 lines
927 B
ObjectPascal

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.