Помощь - Поиск - Пользователи - Календарь
Полная версия: Таблица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
StrongS@t
Господа програмисты! smile.gif
Как можно сделать таблицу 2 на 3 с помощью Pascal?
При этом что бы можно было двигаться по ячейкам,заносить какойто текст в них и при желании пользователя редактировать уже заполненые.
Буду очень благодарен!


"Наш путь труден, но
перспективы - светлые !"
Мао Цзедун
FreeMan
сделай сам. выкинь сюда. проверим, поможем доделать.
volvo
StrongS@t, чем можно пользоваться для решения задачи? Если можно использовать объекты - могу кое-чем помочь ...
Atos
StrongS@t, начнём с самого простого. Сначала надо научиться:
1) узнавать в программе, какую клавишу нажал пользователь
2) выводить на экран собственно сетку таблицы, например, с помощью горизонтальных -- и вертикакальных | чёрточек.
Это сможешь сделать?
VelarThind
В одной умной книжке читал, что есть в PASCALE символы псевдографики на пример:
1) Левый верхний угол - #218
2) правый верхний - 191
3) нижний правый - 217
4) левый нижний - 192
5) вертикальная черточка с отходов в право - 195
в лево - 180
обычная - 179
6) горизонтальная с отходом вниз - 194
вверх - 193
обычная - 196

просто пишешь

Код
write(#218,#196,#191);


и прога выводит всю верхнюю строчку таблицы. Ну а с вводом ин-ции
просто распознаёшь клавишу. ну на пример

Код
... {вывод там переменных и таблицы}
 gotoxy(2,2); {первая клетка таблицы}
 c := readkey;
 if c = #0 then  {если нажата то проверяем}
    case ord(readkey) of
      72: gotoxy(wherex,wherey-2); {на одну строчку таблициы вверх}
      80: gotoxy(wherex,wherey+2); {вниз}
      75: gotoxy(wherex-2,wherey);  {влево}
      77: gotoxy(wherex+2,wherey); {вправо}
   end;
 else write(c); {вывод ин-фы}
Atos
VelarThind, в общем верно, но я бы добавил:
Цитата
if c = #0 then  {если нажата то проверяем}

if c = #0 then  {если нажата управляющая клавиша, то проверяем}
Цитата
case ord(readkey) of
      72: gotoxy(wherex,wherey-2); {на одну строчку таблициы вверх}
      80: gotoxy(wherex,wherey+2); {вниз}
      75: gotoxy(wherex-2,wherey);  {влево}
      77: gotoxy(wherex+2,wherey); {вправо}
   end;

Обработка сообщений от клавиатуры на самом деле будет сложнее - хотя бы надо проверять, не вышли ли мы за границы таблицы.
{72, 80,75,77 - коды клавиш со стрелками}
Цитата
else write( c); {вывод ин-фы}

else {нажата символьная клавиша}write( c); {вывод ин-фы}
VelarThind
НУ да. Я согласен, что доработать надо. А алгоритм вроде работает.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.