Доброго времени суток, уважаемые программисты.
Исходная программа:

Код:
program primer_2_3;
uses crt;
type
Stroka=object
Xt, Yt: integer;
Text: string;
procedure Init(aXt, aYt:integer; aText: string);
procedure Print;
end;
procedure Stroka.Init;
begin
Xt:=aXt;
Yt:=aYt;
Text:=aText;
end;
procedure Stroka.Print;
 begin
    GotoXY(Xt,Yt);
    writeln(Text);
    end;
type
StrInWin=object
X1,Y1,X2,Y2,Color: integer;
Str: Stroka;
procedure Init(aX1,aY1,aX2,aY2,aColor:integer; aStr: Stroka);
procedure MakeWin;
end;
procedure StrInWin.Init;
     begin
      X1:=aX1;
      Y1:=aY1;
      X2:=aX2;
      Y2:=aY2;
      Color:=aColor;
      Str:=aStr;
     end;
 procedure StrInWin.MakeWin;
     begin
      Window(X1,Y1,X2,Y2);
       TextBackGround(Color);
      clrScr;
     end;
     var
     ObWin: StrInWin;
     ObStr: Stroka;
     Begin
     ObStr.Init(1,1,'soobsenie');
     ObWin.Init(8,4,32,20,4,ObStr);
     ObWin.MakeWin;
     ObWin.Str.Print;
     End.

Она выводит цветную строку в цветном окне.
Задание:
Преобразовать класс Stroka в класс Stroka1 так, чтобы он мог выводить несколько цветных строк (ввести новые поля и переопределить методы).
Вот моя робкая попытка это сделать:

Код:
program primer_2_3;
uses crt;
type
Stroka=object
Xt, Yt: integer;
Text: string;
procedure Init(aXt, aYt:integer; aText: string);
procedure Print;
end;
procedure Stroka.Init;
begin
Xt:=aXt;
Yt:=aYt;
Text:=aText;
end;
procedure Stroka.Print;
 begin
    GotoXY(Xt,Yt);
    writeln(Text);
    end;
     type
Stroka1=object
N: integer;
procedure Init(aXt, aYt:integer; aText: string; aN: integer);
procedure Print;
end;
procedure Stroka1.Init;
begin
Stroka1.Init(aXt,aYt,aText,aN);
N:=aN;
end;
     procedure Stroka1.Print;
     var
     i: integer;
     begin
     for i:=1 to N do
     Stroka.Print;
     end;
      type
StrInWin=object
X1,Y1,X2,Y2,Color: integer;
Str: Stroka1;
procedure Init(aX1,aY1,aX2,aY2,aColor:integer; aStr: Stroka1);
procedure MakeWin;
end;
procedure StrInWin.Init;
     begin
      X1:=aX1;
      Y1:=aY1;
      X2:=aX2;
      Y2:=aY2;
      Color:=aColor;
      Str:=aStr;
     end;
 procedure StrInWin.MakeWin;
     begin
      Window(X1,Y1,X2,Y2);
       TextBackGround(Color);
      clrScr;
     end;
     var
     ObWin: StrInWin;
     ObStr: Stroka1;
     Begin
     ObStr.Init(1,1,'soobsenie',5);
     ObWin.Init(8,4,32,20,4,ObStr);
     ObWin.MakeWin;
     ObWin.Str.Print;
     End.

Но Паскаль выдает ошибку "Invalid procedure or function reference" и подсвечивает строчку выделенную жирным подчеркнутым шрифтом в следующем фрагменте:
procedure Stroka1.Print;
var
i: integer;
begin
for i:=1 to N do
begin
Stroka.Print;
end;
end;
Что я делаю не так?

З.Ы.: ну и чтобы вы повеселились - это задача по объектнно-ориентированному программированию 2 курс университета.