Главная · Поиск книг · Поступления книг · 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 ... 13 14 15 16 17 18 19  20 21 22 23 24 25 26 ... 43
   wnd = establish_window(5, 10, 3, 50);
   set_title(wnd, "Press F1 for help");
   set_colors(wnd, ALL, RED, WHITE, DIM);
   display_window(wnd);
   while ((c = get_char()) != ESC) {
       switch (c)      {
           case '1':
               wprintf(wnd, "\nA stitch in time \
saves nine   ");
               break;
           case '2':
               wprintf(wnd, "\nA rolling stone \
gathers no moss");
               break;
           case '3':
               wprintf(wnd, "\nA penny saved \
is a penny earned");
               break;
           default:
               break;
       }
   }
   delete_window(wnd);
}

Листинг 7.5: sayings.prj

saying
maxims (twindow.h, keys.h)
thelp (twindow.h, keys.h)
twindow (twindow.h, keys.h)
ibmpc.obj


                       Резюме
-----------------------------------------------------------------

     Ваши оконные средства теперь включают возможность контекстно
-управляемой  подсказки.  Следующие главы содержат дополнительные
возможности обработки окон и  примеры  их  использования.  Каждый
пример  использует окна контекстно-управляемой подсказки, поэтому
ваше понимание средств подсказки возрастает с  каждой добавленной
возможностью.   Это   обучение   имеет   существенное   значение,
поскольку,   как    правило,    диалоговые    программы    должны
предусматривать  оперативную  подсказку  пользователю.  Следующее
дополнение  к   использованию   окон   в   диалоговой   программе
представлено  в  Главе 8,  которая описывает использование окон в
качестве  форм  для  ввода  данных.  Глава  8  включает  функции,
позволяющие  вам  описывать  содержимое  и  формат  шаблона ввода
данных,  и описывает программное обеспечение для сбора  элементов
данных, вводимых пользователем в форму.


                          ГЛАВА 8
                          -------


                 Иcпользование данных в окнах
-----------------------------------------------------------------

     Интерактивные программы   интерпретируют   значения   данных
внутри компьютера в соответствии с типами  данных,  определенными
пользователем.   Эти  значения  данных  могут  интерпретироваться
по-разному,  поэтому программы могут  использовать  разнообразные
технические  приемы  для  интерпретации значений вводимых данных.
Например,  текстовый процессор интерпретирует данные, поступающие
на  его  вход,  как  текст произвольной формы.  Электронный бланк
интерпретирует данные в  соответствии  с  совокупностью  форматов
строки  и  столбца,  в  которой в данный момент находится курсор.
Однако одни и те же данные каждая программа "видит  и  чувствует"
по-разному.  Поэтому  даже правильное копирование входного потока
одной программы на вход другой может  привести  к  массе  спорных
результатов, которые в этом случае выдает вторая программа.

     Многие интерактивные  программы воспринимают значения данных
непосредственно в той форме,  в которой пользователь осуществляет
их физический ввод  (например,  данные в печатной форме (бланк)).
Каждая, сходная   с   печатной,   форма   представления    данных
определялась Государственной     налоговой     службой.    Формо-
ориентированные интерактивные программы  интерпретируют программы
как  лист  бумаги,  содержащий поля со значениями данных и текст,
описывающий значение каждого поля.  После того,  как пользователь
введет   значение   данного   в   соответствующие  позиции  поля,
программное обеспечение   проверяет    допустимость    введенного
значения   и   дальнейшее   управление  курсором.  В  этой  главе
формо-ориентированный ввод  данных,  указание  доступа  к  ним  и
контроль  операций  над  ними реализован путем использования окна
как шаблона для ввода данных. Шаблон ввода данных включает в себя
окно  вместе  с описанием вводимых в каждое поле данных и именами
полей ввода данных.



              Шаблон ввода данных
-----------------------------------------------------------------

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

                Поле ввода данных
-----------------------------------------------------------------

     Поле ввода данных,  по сути дела, представляет собой элемент
данных.  Оно  может  быть  датой,  результатом  вычисления  суммы
чего-либо, именем или вычисленной средней заработной платой. Поле
ввода   данных   имеет   следующие   характеристики:   оно  имеет
определенную длину и формат  и должно занимать одну  строку окна.
Поле ввода данных - традиционный элемент систем управления базами
данных (СУБД).

     После того,  как  вы  описали  поля   шаблона,   вы   должны
специфицировать  позицию  размещения  поля  в шаблоне,  атрибуты,
выходной   буфер,   функцию   проверки    допустимости    данных,
help-информацию  и  маску  вводимых данных для каждого поля.  Эти
компоненты описания полей рассматриваются ниже.


                             Позиция
------------------------------------------------------------------

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


                              Атрибуты
------------------------------------------------------------------

     Атрибут поля позволяет описать вводимые в  него  данные  как
имеющие  один  из существующих типов данных.  Тип данных задается
отдельной буквой (которые рассмотрены в данной главе). Однако уже
сейчас  вам необходимо знать,  что вы можете специфицировать поле
как поле даты,  спецификации,  денежной единицы или как числовое.
Задание  атрибута  поля позволяет контролировать,  каким способом
будут интерпретированы значения данных в поле.


                                Буфер
-----------------------------------------------------------------

     Для каждого поля назначается  выходной буфер данных, который
является адресом символьного массива, в котором будет происходить
накопление данных.  Ваша программа  резервирует  память  под этот
буфер и передает его адрес данным внутри прикладной программы.


                   Проверка допустимости значений
-----------------------------------------------------------------

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

     Вы можете специфицировать вспомогательное help-окно (которое
описано в Главе 7)  для каждого поля,  а  также  help-функцию для
каждого поля,  которая будет вам выдавать справочную информацию о
предназначении  каждого поля  в  случае,  если  постоянный текст,
описывающий поле и  отображаемый в окне,  не удовлетворяет вашему
любопытству.   Help-окно  получает   информацию  из  специального
help-файла,  в  связи с чем  включение  help-функций  в программу
обязательно.  При  желании  вы  можете  не  специфицировать  свои
help-функции,  а  использовать  стандартные  help-функции пакета,
которые  могут  быть  вызваны  пользователем   путем  нажатия  на
соответствующую help-клавишу.  Следует помнить, что использование
соответствующей  help-спецификации  эффективно  лишь  в  процессе
ввода   пользователем   данных   в   поле,   для   которого   эта
help-информация предназначена.



                      Маска вводимых данных
-----------------------------------------------------------------

     Когда вы определяете поле для ввода данных, вы можете задать
маску  для  всех  вводимых   в  это  поле  значений.   Эта  маска
специфицируется в массиве  символов,  включающем  в  себя символы
нижнего подчеркивания и пунктуации.  Символ нижнего подчеркивания
соответствует позиции маски,  в которой возможен  ввод  данных, а
пунктуация служит для обозначения других (различных) отображаемых
символов   кода  ASCII.   Длина   элементов   данных  описывается
количеством  символов  нижнего  подчеркивания,  а  длина  буфера,
выделяемого под вводимые данные,  описываемые маской, должна быть
не меньше, чем длина элемента данных плюс 1. Символы пунктуации в
буфер  не  перекачиваются.   Например,   маска  вводимых  данных,
касающихся номера телефона  (включая код  местности и расширение)
может иметь следующий вид:

char phone_mask [] = "(____)____-____ ext:_____";



              Приглашения к вводу в поле (Prompts)
-----------------------------------------------------------------

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

                    Ввод данных
-----------------------------------------------------------------

     В процессе  своей работы  функция  ввода данных обрабатывает
поля шаблона в той последовательности,  в которой вы осуществляли
их описание  (не принимая  во  внимание  позиции их  размещения в
шаблоне),  осуществляя при этом  простейшую проверку допустимости
находящихся  в  полях  шаблона  данных  (правильность  даты, поле
должно содержать только цифры и т.д.). Вы можете также определить
обычную  (в  смысле  Си)   функцию,  которая  будет  осуществлять
дальнейшую,  возможно, сложную и разнообразную, проверку вводимых
данных  или определить  функцию,  которая будет выдавать в случае
ввода    недопустимых    данных    специальную    help-информацию
пользователю.  В  процессе  ввода  данных  в  шаблон используется
выделение в соответствии  с указанными  атрибутами (ACCENT) цвета
окна  более ярким  тоном  полей,  в  которые  предполагается ввод
данных.   При  этом  курсор  на  экране  компьютера  переходит  в
соответствующую  позицию   поля.   В  случае,  если  пользователь
инициирует другой порядок ввода данных,  переходя от поля к полю,
то выделение  следующего,  выбранного пользователем поля ввода, и
перемещение курсора также осуществляется программно.


                 Функции сбора данных
-----------------------------------------------------------------

     Эти функции,   являющиеся   библиотечными   функциями,  ваша
программа  так  или  иначе  вызывает  при  использовании  окна  с
Предыдущая страница Следующая страница
1 ... 13 14 15 16 17 18 19  20 21 22 23 24 25 26 ... 43
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама