Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 21.11.2010, 16:44   #1 (permalink)
zena
Member
 
Регистрация: 11.11.2010
Сообщений: 85
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 20
По умолчанию Модуль Crt

помогите исправить задачу пожалуйста.
Нужно составить так , что бы в данной программе все три режима писались в одну строку, а не в столбик.
Код:
program e;
uses crt;
 type mas= array[1..3] of string[20];
 const
 stor:mas=('режим 1','режим 2','режим 3');
Var
 i,k:byte;
 kod:char;
    begin
     textmode(co80);
     clrscr;
     window(31,11,50,16);
     textbackground(7);
     textcolor(0);
     clrscr;
     k:=1;
     gotoxy(3,2);
     write('Выберите режим');
     kod:=' ';
     while kod<>#13 do
       begin
       for i:=1 to 3 do
        begin
        if i=k then begin
         textbackground(0);
         textcolor(7); end
        else begin
         textbackground(7);
         textcolor(0); end;
       gotoxy(1,i+2);
       write(stor[i]);
        end;
       kod:=readkey;
       sound(700);
       delay(500);
       nosound;
      if kod=#0 then
       begin
       kod:=readkey;
       if kod=#72 then
       if k>1 then
       k:=k-1 else
       k:=3;
       if kod=#80 then if k<3 then
       k:=k+1 else
       k:=1;
       end;
      end;
     window(1,1,80,25);
     gotoxy(33,15);
     write('выбран режим',k);
    end.
zena вне форума   Ответить с цитированием

Старый 21.11.2010, 16:44
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

По данной тематике есть и другие темы

АМ/ЧМ модуль YTS920
Оптосимисторный модуль
Как закрыть модуль ABCObjects в Паскале?

Старый 21.11.2010, 18:34   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

К сожалению, я не очень разбираюсь в этой textmode, как-то никогда не использовал в своих программах псевдографические возможности этого режима, но так, кое-какие соображения:

1. Почему-то маленькое окно рисуется только при первом запуске программы, при повторном же программы окно разворачивается во весь экран. Вероятно, в конце нужно для полноэкранного окна восстановить исходную (default) палитру. Даже не знаю, есть ли для этого специальная CRT-команда.
2. Зачем Вы задаете длину строк в 20 символов в типе, если дальше в константе stor используются строки длиной 7 символов?
3. Расположение режимов "в столбик" определяется строкой
gotoxy(1,i+2);
Если Вы хотите, чтобы перечень режимов был "в строчку", так надо, во-первых, изменить размеры окна (ужать по вертикали и вытянуть по горизонтали), во-вторых, в операторе gotoxy зафиксировать второй параметр (положение по вертикали) и менять позиции в первом, задавая соответствующие сдвиги по горизонтали, в третьих - поменять коды команд, чтобы реакция была на горизонтальные, а не вертикальные стрелки.

Как-то так.
Vladimir_S вне форума   Ответить с цитированием
Старый 21.11.2010, 20:41   #3 (permalink)
zena
Member
 
Регистрация: 11.11.2010
Сообщений: 85
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 20
По умолчанию

Хм...попробую....может что-то и получится...спасибо.
zena вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:10.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.