Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Стивенс Ал. Весь текст 495.21 Kb

Техника программирования на турбо-С

Предыдущая страница Следующая страница
1 ... 9 10 11 12 13 14 15  16 17 18 19 20 21 22 ... 43
            case 'c':   forefront(wndC);
                        break;
            case 'A':   rear_window(wndA);
                        break;
            case 'B':   rear_window(wndB);
                        break;
            case 'C':   rear_window(wndC);
                        break;
            default:    break;
    }
} while (c != ESC);
     delete_window(wndA);
     get_char();
     delete_window(wndC);
     get_char();
     delete_window(wndB);
}

Листинг 6.8: prom.prj

prom
promote (twindow.h, keys.h)
twindow (twindow.h, keys.h)
ibmpc.obj


      Назначение заголовков и изменение цветов окна
      ---------------------------------------------

     Когда окно  создано,  вы  можете  назначить ему заголовок, а
также установить цвета переднего плана и фона.

     Программа, иллюстрирующая заголовки и цвета  окон, приведена
в листингах  6.9,  6.10  и  6.11.  Листинг 6.9 является маленькой
управляющей  программой,  а листинг 6.11 - проектным make-файлом.
Обращайтесь  к  листингу 6.10,  ccolor.c,   при   чтении   данных
разъяснений.

     Для запуска примера вводите следующую команду

c>color

     Снова выдается три окна. Каждое из них имеет свой цвет (если
у вас цветной монитор), но ни у одного из них нет заголовка. Окна
расположены  в  тех  же  местах  и  имеют те же размеры,  что и в
предыдущих примерах. Программа ожидает нажатия клавиши с одной из
букв:  r, g или b. Она будет использовать эти буквы для изменения
заголовка среднего окна на "RED",  "GREEN" или  "BLUE",  а  также
изменит  цвет  среднего окна на соответствующий новому заголовку.
Рисунок 6.6 показывает экран после выбора алого (red) окна.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦                                                               ¦
¦   C>                                                          ¦
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
¦               ЪДДДДДДДREDДДДДДДД¬                             ¦
¦               ¦                 ¦                             ¦
¦          ЪДДДДґ                 ¦                             ¦
¦          ¦    ¦                 ¦                             ¦
¦          ¦    ¦   ЪДДДДДДДДД¬   ¦                             ¦
¦          ¦    ¦   ¦         ¦   ¦                             ¦
¦          ¦    АДДДґ         ГДДДЩ                             ¦
¦          ¦        ¦         ¦                                 ¦
¦          АДДДДДДДДґ         ¦                                 ¦
¦                   АДДДДДДДДДЩ                                 ¦
¦                                                               ¦
¦                                                               ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

          Рисунок 6.6. Изменение цветов и заголовков.


     Нажмите клавишу  <Ключ>  для  выхода  и уничтожения окна,  а
также любые две другие клавиши  для  уничтожения  двух  остальных
окон и завершения программы.

Листинг 6.9: color.c

/* color.c */

void ccolor(void);

main()
{
   ccolor();
}

Листинг 6.10: сcolor.c

/* ccolor.c */

#include "twindow.h"
#include "keys.h"

void ccolor()
{
   WINDOW *wndA, *wndB, *wndC;
   int c;

   wndA = establish_window(8, 8, 9, 19);
   wndB = establish_window(13, 6, 9, 20);
   wndC = establish_window(16, 11, 9, 12);
   set_colors(wndA, ALL, RED, YELLOW, BRIGHT);
   set_colors(wndB, ALL, AQUA, YELLOW, BRIGHT);
   set_colors(wndC, ALL, WHITE, YELLOW, BRIGHT);
   display_window(wndA);
   display_window(wndB);
   display_window(wndC);
   do  {
       c = get_char();
       switch (c)  {
           case 'r':
               set_title(wndB, " RED ");
               set_colors(wndB, ALL, RED, WHITE, BRIGHT);
               break;
           case 'b':
               set_title(wndB, " BLUE ");
               set_colors(wndB, ALL, BLUE, WHITE, BRIGHT);
               break;
           case 'g':
               set_title(wndB, " GREEN ");
               set_colors(wndB, ALL, GREEN, WHITE, BRIGHT);
               break;
           default:
               break;
        }
     } while (c != ESC);
     delete_window(wndA);
     get_char();
     delete_window(wndC);
     get_char();
     delete_window(wndB);
}

Листинг 6.11: color.prj

color
ccolor (twindow.h, keys.h)
twindow (twindow.h, keys.h)
ibmpc.obj

           Сравнение стековых и слоеных окон
           ---------------------------------

     Рассматриваемая здесь  программа  дает  возможность сравнить
представления стековых и слоеных окон.  Вы можете откомпилировать
ее  с  оконной библиотекой,  которая была компилирована для обоих
типов окон.

     Программа, иллюстрирующая   различия   между   стековыми   и
слоеными окнами, показана на листингах 6.12, 6.13 и 6.14. Листинг
6.12 является маленькой управляющей программой,  а листинг 6.14 -
проектным make-файлом.  Обращайтесь к листингу 6.13,  fast.c, при
чтении данных разъяснений.

     Для запуска примера введите следующую команду:

c>fast

     Помните, что программа сама по себе не показывает сравнение.
Вам  необходимо  построить  две  версии  ее,  одну  - со стековой
оконной библиотекой, а вторую - со слоеной оконной библиотекой, и
сравнить представления обеих программ.

     После запуска программы она создаст и выдаст пятнадцать окон
в  последовательности,  показанной  на  рисунке  6.7.  Когда   вы
нажимаете  любую  клавишу,  программа  уничтожает  каждое  окно в
обратном порядке.  Вы можете  сравнить  соответствующие  скорости
работы программ, компилированных в двух средах.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦ ЪДДДДДДДДДДДДДД¬                                              ¦
¦ ¦ ЪДДДДДДДДДДДДДДД¬                                           ¦
¦ ¦ ¦ ЪДДДДДДДДДДДДДДД¬                                         ¦
¦ ¦ ¦ ¦ ЪДДДДДДДДДДДДДДД¬                                       ¦
¦ АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДД¬                                     ¦
¦   АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДД¬                                   ¦
¦     АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДД¬                                 ¦
¦       АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДД¬                               ¦
¦         АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДД¬                            ¦
¦           АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДДД¬                         ¦
¦             АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДДДД¬                      ¦
¦               АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДДДДД¬                   ¦
¦                 АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДДДДД¬                 ¦
¦                   АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДДДДД¬               ¦
¦                     АД¦ ¦ ¦ ЪДДДДДДДДДДДДДДДДДДД¬             ¦
¦                       АД¦ ¦ ¦                   ¦             ¦
¦                         АД¦ ¦ Hello, Dolly # 14 ¦             ¦
¦                           АД¦                   ¦             ¦
¦                             АДДДДДДДДДДДДДДДДДДДЩ             ¦
¦                                                               ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

           Рисунок 6.7. Сравнение стековых и слоеных окон.


Листинг 6.12: fast.c

/* fast.c */
void fasttest(void);

main()
{
    fasttest();
}

Листинг 6.13: fasttest.c

/* fasttest.c */
#include 
#include "twindow.h"

void fasttest()
{
   int row, col;

   for (row = 0, col = 0; col < 15; row += 3, col++)   {
       establish_window(row, col, 10, 30);
       set_colors(NULL, ALL, RED, YELLOW, BRIGHT);
       display_window(NULL);
       wprintf(NULL, "\n\n\n  Hello, Dolly # %d", col);
   }
   get_char();
   while (col--)
       delete_window(NULL);
}

Листинг 6.14: fast.prj

fast
fasttest (twindow.h)
twindow (twindow.h, keys.h)
ibm.obj

Перемещение, подъем, скрытие окон, меню, изменение интенсивности
----------------------------------------------------------------

     В следующем  примере  комбинируется несколько уже показанных
возможностей   и   даются   примеры   еще   двух    возможностей:
использование   get_selection   для  обработки  простого  меню  и
использование set_intensity для изменения яркости переднего плана
окон.

     Программа, иллюстрирующая  эти возможности,  представлена на
листингах 6.15,  6.16 и 6.17.  Листинг  6.15  является  маленькой
управляющей  программой,  а листинг 6.17 - проектным make-файлом.
Обращайтесь  к  листингу  6.16,  poems.c,   при   чтении   данных
разъяснений.

     Для запуска примера введите следующую команду:

c>poetry

     Эта программа выдает пять различных стихотворений на экран и
позволяет вам выбрать одно из них, перемещать его, поднять его на
передний   план,  опустить  его  назад  и  уничтожить.  Программа
начинает работу с выдачи оконного меню,  которое перечисляет  все
стихотворения.  Вы  можете  переместить  курсор  вверх или вниз и
выбрать одно стихотворение  нажатием  клавиши  <Ввод>.  Вы  также
можете   нажать   одну   из   цифр  от  1  до  5,  выбирая  номер
стихотворения.   В   результате    будет    показано    выбранное
стихотворение. На рисунке 6.8 показано меню стихотворений.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦                                                               ¦
¦   ЪДДДДДДДДДДДДДДДДДД Select A PoemДДДДДДДДДДДД¬              ¦
¦   ¦                                            ¦              ¦
¦   ¦ 1: TELL ALL THE TRUTH BUT TELL IT SLANT    ¦              ¦
¦   ¦ 2: AFTER LONG SILENSE                      ¦              ¦
¦   ¦ 3: A MAN SAID TO THE UNIVERSE              ¦              ¦
¦   ¦ 4: FLYING CROOKED                          ¦              ¦
¦   ¦ 5: THE IDLE LIFE I LEAD                    ¦              ¦
¦   ¦                                            ¦              ¦
¦   АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ              ¦
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
               Рисунок 6.8. Меню стихотворений.

     После выбора  стихотворения  вы   можете   передвинуть   его
клавишами  со  стрелками,  возвращаясь  к  меню  нажатием клавиши
<Ключ> или выбирая другое стихотворение  нажатием соответствующей
цифровой  клавиши.  Выбранное  текущее  стихотворение  выдается с
повышенной яркостью,  а  все  остальные  -  с  обычной.  Если  вы
выбираете  стихотворение,  выданное  с  обычной яркостью,  то оно
становится  ярким,  а  остальные   -   обычными.   Для   перевода
стихотворения  на  передний план нажмите клавишу <Плюс> (+);  для
посылки его на фон нажмите клавишу <Минус> (-).  Для  уничтожения
текущего   стихотворения   нажмите   клавишу   <Удл>.  Вы  можете
восстановить его нажатием клавиши с номером.  После этого нажмите
клавишу <Ключ> для возврата к меню,  а затем снова клавишу <Ключ>
для выхода из программы.
     На рисунке  6.9  показаны  стихотворения,  разбросанные   по
экрану в различных местах.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД...
¦                          Ъ 1: TELL ALL THE TRUTH BUT TELL IT...
¦  C>                      ¦
¦                          ¦ Tell all the truth but tell it sl...
¦                          ¦
¦ ЪДДДДДДДДД 2: AFTER LONG SILENCE ДДДДДДДДД¬t lies
¦ ¦                                         ¦r infirm Delight
¦ ¦Speesh after long silense; it is right,  ¦b surprise
¦ ¦All other lovers being estranged or dead ¦ ЪДДД 5: THE IDLE...
¦ ¦Unfriendly lamplight hid under its shade,¦h¦
¦ ¦The curtaiЪДДДДДДДД 4: FLYING CROOKED ДДДД ¦The idle life I...
Предыдущая страница Следующая страница
1 ... 9 10 11 12 13 14 15  16 17 18 19 20 21 22 ... 43
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама