Program Test;

{$define debug}

uses
  Chief2;

Type
PNewObj = ^NewObj;
NewObj  = Object (TObject)
   Constructor Create (aOwner:PObject);
End; { NewObj }

Constructor NewObj.Create;
Begin
   Inherited Create (aOwner);
   Name := 'Object Number 2 is a Child!';
   Handle := -40;
End; { NewObj.Create }

Var
  ThisObj : TObject;

Begin
{ Writeln ('Hello World!'); }
  ThisObj.Init;
  With ThisObj do begin
     Handle := -1;
     Name   := { 'Object Number 1'; } 'OK';
     Child  := New (PNewObj, Create (@ThisObj) );
{
     Writeln ('My handle    = ', Handle);
     Writeln ('My name      = ', Name);
     Writeln ('Child handle = ', Child^.Handle);
     Writeln ('Child name   = ', Child^.Name);
     Writeln ('Child PARENT handle = ', Child^.Parent^.Handle);
}
     writeln ( Child^.Parent^.Name );
     Child^.Free;
     Done;
  end; { With Ob^ }
{ Writeln ('Hello World Number 2 !!'); }
End { Program() }.
