Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 65 стр.

UptoLike

Составители: 

65
{for(int j=1;j<80;j++)
{gotoxy(j,ii);
printf("%c",str[i][j-1]);
}
ii++;i++;
if (ii==25){getch();
clrscr();
ii=1;}
}
getch();
}}
class WinText:public Window ,public Text //класс «окно для отображения текста»
{ int DeltaX,DeltaY; //величина прокрутки текста в окне по вертикали и горизонтали
public:
WinText(int numb=25,int xb=10,int yb=10,int a=60,int b=20): //конструктор
Window(xb,yb,a,b),Text(numb) //вызов конструкторов базовых классов
{DeltaX=0;DeltaY=0;}
void draw(); //переопределяем функцию отображения текста так, чтобы текст
//отображался в окне
char Control(); //функция, реализующая реакцию на нажатия клавиш
};
void WinText::draw()
{ wind::draw();
textcolor(color);
for(int i=0;i<dy&&i+DeltaY<UsedN;i++)
for (int j=0;j<dx;j++)
{gotoxy(j+y,i+x);
printf("%c",str[i+DeltaY][j+DeltaX]); //отображаем текст в окне с
учетом прокрутки
}}
char WinText::Control()
{ char ch;
ch=getch();
if (!ch)
{ ch=getch();
switch(ch) //обработка нажатия клавиш-стрелок
{case 72:if (DeltaY>0) {DeltaY--;draw();}break;
case 80:if (DeltaY<UsedN){DeltaY++;draw();}break;
case 75:if (DeltaX>0) {DeltaX--;draw();}break;
case 77:if (DeltaX<80-dy) {DeltaX++;draw();}
} }
return ch;
}
main()
{textbackground(0);
clrscr();
WinText w(50,2,2,10,15); //определяем объектокно с буфером на 50 строк
// размером 10 на 15 с координатами верхнего левого угла 2,2
w.Read("lect9.cpp"); //считываем в буфер объекта содержимое файла lect9.cpp
w.draw(); //отображаем содержимое буфера в окне
  {for(int j=1;j<80;j++)
    {gotoxy(j,ii);
     printf("%c",str[i][j-1]);
    }
   ii++;i++;
   if (ii==25){getch();
               clrscr();
               ii=1;}
  }
  getch();
}}
class WinText:public Window ,public Text //класс «окно для отображения текста»
 { int DeltaX,DeltaY;           //величина прокрутки текста в окне по вертикали и горизонтали
  public:
   WinText(int numb=25,int xb=10,int yb=10,int a=60,int b=20): //конструктор
          Window(xb,yb,a,b),Text(numb) //вызов конструкторов базовых классов
     {DeltaX=0;DeltaY=0;}
   void draw();            //переопределяем функцию отображения текста так, чтобы текст
                           //отображался в окне
   char Control();         //функция, реализующая реакцию на нажатия клавиш
 };
void WinText::draw()
{ wind::draw();
   textcolor(color);
   for(int i=0;i0) {DeltaY--;draw();}break;
    case 80:if (DeltaY0) {DeltaX--;draw();}break;
    case 77:if (DeltaX<80-dy) {DeltaX++;draw();}
   }}
return ch;
}
 main()
{textbackground(0);
 clrscr();
 WinText w(50,2,2,10,15); //определяем объект – окно с буфером на 50 строк
                  // размером 10 на 15 с координатами верхнего левого угла 2,2
 w.Read("lect9.cpp"); //считываем в буфер объекта содержимое файла lect9.cpp
 w.draw();                  //отображаем содержимое буфера в окне
                                                65