1) оформляйте class правильно: в конце ставьте end, а все члены распределяйте по областям private, protected, public.
2) Поля у TShip не понятны для чего, поэтому не могу прокомментировать.
3) У Дока я же вам предлагал как определять занятость:
FShip: TShip. Если это поле nil, то корабля в доке нет. Создаёте 3 корабля (можно через массив) и два дока:
Код:
var
Ships: array[1..3] of TShip;
Docks: array[1..2] of TDock;
...
for i:= 1 to 3 do
begin
Ships[i]:= TShip.Create;
end;
for i:= 1 to 2 do
begin
Docks[i]:= TDock.Create;
end;
Размещаете корабли:
Код:
for i:= 1 to 2 do
begin
Docks[i].FShip:= Ships[i];
end;
Хотя лучше размещение делать через свойства и/или методы.