Задача: Нарисовать табличку, в которой можно двигатся стрелочками и заносить данные, данные в табличке выводятся в виде первых двух чисел и троеточия(12...), вводятся данные через отдельное окно снизу экрана, данные должны сохранятся в массив(не реализованно, но тут разберусь) и показыватся в табличке указанным уже методом. Пока для проверки программа должна рисовать в ячейке просто букву Х, но она этого не делает, у меня есть подозрение, что метод, которым я решил это сделать не совсем подходит для данной задачи, а именно в каждой ячейке таблицы создается собственное окно, возможно так делать нельзя и надо просто ограничить движение курсора внутри ячейки. Подскажите каким образом лучше всего реализовать данную задачу, или если метод реализации правильный, то почему буковка Х не рисуется .
Program interpol; uses crt; const Esc= #27; Right= #77; var n,i,x,y,Xn,Yn,key:integer; curchoice,status, temp:byte; z:real; ch,c,s:char; begin clrscr; curchoice:=1;status:=128;textcolor(7); asm mov ah,01;mov cl,$20;int $10;end; Xn:=2;Yn:=2; gotoxy(Xn,Yn);textcolor(15); textbackground(black); n:=21; x:=1;y:=1; for i:=1 to n do begin GotoXY(x,y); write('ЙНННННН»'); writeln; gotoxy(x,y+1); write('є є'); writeln; gotoxy(x,y+2); write('ИННННННј'); if x<80 then x:=x+8 else begin x:=1;y:=y+3; end; end; x:=2;y:=2; window(2,2,7,2); key:=0; repeat c:=readkey; if c=#0 then begin s:=readkey; case s of #77: if x<70 then x:=x+8; #75: if x>8 then x:=x-8; #72: if y>3 then y:=y-3; #80: if y<5 then y:=y+3; { #13: key:=1;} end; window(x,y,x+5,y); end else begin case c of #13: begin window(1,23,20,23); readln(z); window(x,y,x+5,y); Gotoxy(x,y); writeln('x'); end; end; end; until c=#27; end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.