www.citforum.ru

Сервер содержит море(!) аналитической информации!

Поиск Рубрикатор Новости сервера Учебный центр Книжный магазин
Logo
Mistral.ru
Читать можно не только в онлайне :)
Приглашаем вас посетить
книжный магазин "Мистраль"!
 
mcse
Учебная программа
"Статус MCSE под ключ!"
Занятия начнутся 19 июня!

CITFORUM.RU >>> FTP INTERNET СЕТИ БАЗЫ ДАННЫХ ПРОГРАММИРОВАНИЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ УПРАВЛЕНИЕ КОРПОРАТИВНЫМИ РЕСУРСАМИ HARDWARE ПОЛЬЗОВАТЕЛЯМ И ПРЕПОДАВАТЕЛЯМ РУБРИКАТОР МАТЕРИАЛЫ СЕМИНАРОВ И КОНФЕРЕНЦИЙ ЖЕЛТЫЕ СТРАНИЦЫ ListSoft & Citforum CD ИНТЕРНЕТ-МАРКЕТИНГ О СЕРТИФИКАЦИИ MICROSOFT УЧЕБНЫЕ КУРСЫ КОНФЕРЕНЦИЯ "ИНТЕРНЕТ-МАРКЕТИНГ'99" >>> >

 

ГЛАВА 7 - ДОСТУП К ЭКРАНУ И КЛАВИАТУРЕ

ВИДЕОПРОЦЕДУРЫ

BLANK (очистить прямоугольник на экране)


    

BLANK([строка][,столбец][,строк][,столбцов])

строка Числовое значение или выражение, которое задает строку для начального (верхнего левого) угла. По умолчанию - 1.
столбец Числовое значение или выражение, которое задает столбец для начального (верхнего левого) угла. По умолчанию - 1.
rows Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию - вся высота экрана.
columns Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).

BLANK удаляет все символы из прямоугольной области на экране. НО BLANK не очищает активные видеоатрибуты-цвета. Ранее активизированные атрибуты PAINT структуры SCREEN и/или оператора SETCOLOR могут повлиять на цвета в прямоугольнике.

Пример:


    BLANK                              !Очистить весь экран



    BLANK(1,1,12,80)                   !Верхнюю половину экрана

    BLANK(1,41,12,40)                  !Верхнюю правую четверть

См. также: SETCOLOR, PAINT

Коды цветовых стилей (видеоатрибуты)

Каждое знакоместо в видеопамяти состоит из двух байт; один данные (символ) и второй - видеоатрибуты. Байт видеоатрибутов содержит трехбитный цвет фона, бит мигания/яркости и четырехбитный цвет переднего плана (текста). Эти биты скомпонованы в одно байтный код цветового стиля с возможными значениями 0..255, который задает комбинацию цветов фона/текста. Бит мигания может служить битом яркости фона при помощи процедуры SetNoBlink. При запрещенном мигании, для фона можно использовать те же 16 цветов, что и для текста. Если же мигание разрешено, то для фона можно использовать только 8 цветов, а остальные 8 будут приводить к миганию текста. Код цветового стиля получается сложением значений фона и текста. В нижеследующей таблице приведены значения, используемые для создания кодов цветовых стилей.


                    Монохром



      Передний план                          Фон

Dec  Hex        Цвет              Dec  Hex        Цвет

---  ---        ----              ---  ---        ----

0    0h         Черный            0    0h        Черный

1    1h         Белый Подчеркн.   16   10h       Черный

2    2h         Белый             32   20h       Черный

3    3h         Белый             48   30h       Черный

4    4h         Белый             64   40h       Черный

5    5h         Белый             80   50h       Черный

6    6h         Белый             96   60h       Черный

7    7h         Белый             112  70h       Белый

8    8h         Серый

9    9h         Ярко-Белый Подчеркн.  Добавь 128 (80h) к цвету

10   0Ah        Ярко-Белый            фона, чтобы получить ми-

11   0Bh        Ярко-Белый            гающий текст.

12   0Ch        Ярко-Белый

13   0Dh        Ярко-Белый

14   0Eh        Ярко-Белый

15   0Fh        Ярко-Белый



   Цветной



        Передний план

Dec     Hex           Цвет

---     ---           ------

0       Oh            Черный

1       lh            голубой

2       2h            зеленый

3       3h            Салатный

4       4h            красный

5       5h            фиолетовый

6       6h            коричневый

7       7h            Белый

8       8h            Серый

9       9h            Светло-голубой

10      OAh           Светло-зеленый

11      OBh           Светло-Салатный

12      OCli          Светло-красный

13      ODh           Светло-фиолетовый

14      OEh           Желтый

15      OFh           Ярко-Белый



                        Фон



Dec    Hex         Цвет (без мигания)        Цвет (с миганием)

----   ---         ----------------          ------------------

0      0h            Черный                     Черный

16     10h           голубой                    голубой

32     20h           зеленый                    зеленый

48     30h           Салатный                   Салатный

64     40h           красный                    красный

80     50h           фиолетовый                 фиолетовый

96     60h           коричневый                 коричневый

112    70h           Белый                      Белый

128    80h           Серый                      Черный

144    90h           Светло-голубой             голубой

160    0A0h          Светло-зеленый             зеленый

176    0B0h          Светло-Салатный            Салатный

192    0C0h          Светло-красный             красный

208    0D0h          Светло-фиолетовый          фиолетовый

224    0E0h          Желтый                     коричневый

240    0F0h          Ярко-Белый                 Белый

PAINT (закрасить прямоугольник на экране)


    

PAINT([строка][,столбец][,строк][,столбцов])

строка Числовое значение или выражение, которое задает строку для начального (верхнего левого) угла. По умолчанию - 1.
столбец Числовое значение или выражение, которое задает столбец для начального (верхнего левого) угла. По умолчанию - 1.
rows Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию - вся высота экрана.
columns Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).

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

Пример:


    SETCOLOR(17h)                        !Белый на Голубом

    PAINT                                !Закрасить весь экран

    SETCOLOR(1Fh)                        !Ярко-Белый на голубом

    PAINT(1,5,1,65)                      !Подсветить заголовок

См. также: SETCOLOR

SCROLL (прокрутить прямоугольную область экрана)


           SCROLL[строка][,столбец][,строк][,столбцов][,счетчик]

строка Числовое значение или выражение, которое задает начальную (верхнюю) строку. По умолчанию - 1.
столбец Числовое значение или выражение, которое задает начальный (левый) столбец прямоугольника. По умолчанию 1.
строк Числовое значение или выражение, которое задает число строк в прямоугольнике. По умолчанию - вся высота экрана (структуры SCREEN)
столбцов Числовое значение или выражение, которое задает число столбцов. По умолчанию вся ширина экрана (структуры SCREEN).
счетчик Позитивное или негативное значение или выражение, которое задает на сколько строк прокрутить. Если СЧЕТЧИК положителен, то прокрутка вверх, если отрицательный, то вниз. По умолчанию СЧЕТЧИК=+1.

SCROLL перемещает символы в прямоугольной области экрана вверх или вниз. По мере сдвига символов, СЧЕТЧИК строк удаляется сверху (снизу) прямоугольника, и СЧЕТЧИК пустых строк создается внизу (вверху). Параметры СТРОКА и СТОЛБЕЦ задают координаты верхнего левого угла прямоугольника относительно верхнего левого угла физического экрана; они НЕ ссылаются на верхний левый угол структуры SCREEN.

SCROLL НЕ изменяет активные видеоатрибуты в прямоугольнике. Ранее активные атрибуты оператора PAINT в SCREEN-структуре или оператора SETCOLOR могут повлиять на цвета в прямоугольнике. Хотя символы сдвигаются, цвета раскраска прямоугольника НЕ меняется.

Пример:


    SCROLL(4,10,16,60,-1)             !Прокрутка данных вниз



    LOOP  5  TIMES                    !Повторять 5 раз

      SCROLL                          !  прокрутить весь экран

    .                                 !Конец цикла

См. также: SETCOLOR, PAINTM

SETBLINK (разрешить мигание)


         SETBLINK

SETBLINK разрешает мигание. Если оно разрешено, то для фона можно использовать только 8 цветов. Это нормальный режим работы, до тех пор, пока мигание не запрещено процедурой SETNOBLINK.

Пример:


  SETNOBLINK            !Выключить мигание

  SHOW(1,15,CENTER('Ты ошибся, друже!',30))

  SETCOLOR(0EBh)        !  цвет - светло салатный на желтом

  PAINT(1,15,1,30)      !  закрасим область сообщения

  BEEP(0,200)           !Ждем 2 секунды

  SETBLINK              !  и делаем мигающий св.салатн. на кори

                        !  чневом

См. также: SETNOBLINK, SETCOLOR, Коды Цветовых Стилей

SETCOLOR (установить видеоатрибуты)


         SETCOLOR(цвет)

цвет Числовое значение или выражение, которое задает код цветового стиля. Допустимые значения ЦВЕТа - 0..255.

SETCOLOR меняет байт выидеоатрибута для каждого символа, записываемого в видеопамять после него. ЦВЕТ точный код цветового стиля (это НЕ ссылка на внутренний массив, используемый в структуре SCREEN параметром COLOR).

Если SETCOLOR использован без параметров, то символы, выводимые на экран после такого SETCOLOR НЕ будут изменять цвет знакомест, куда они выводятся.

Пример:


   SETCOLOR(0)                       !Черный на черном

   SETCOLOR(47h)                     !Белый на красном

   SETCOLOR                          !Оставить атрибуты без изм.

См. также: Коды Цветовых Стилей

SETCURSOR (включить курсор)


          SETCURSOR([строка,столбец])

строка Числовое значение или выражение, задающее строку на экране.
столбец Числовое значение или выражение, задающее столбец на экране.

SETCURSOR показывает курсор в позиции заданной СТОЛБЦОМ и СТРОКОЙ. Используется для позиционированного вывода на устройство "CON". SETCURSOR указывает первую строку и столбец для вывода оператором TYPE, или оператором PRINT, у которого устройством для вывода отчета является "CON." Если параметры не заданы, то SETCURSOR гасит курсор.

Пример:


  SETCURSOR(2,5)           !Turn on the cursor at row 2 column 5

  SETCURSOR                !Turn off the cursor

См. также: TYPE

SETGRAPHIC (установить графический режим)


         SETGRAPHIC(режим)

режим Целая константа или EQUATE, задающая графический видеорежим (EGA, VGA, SVGA).

SETGRAPHIC задает графический режим для SCREEN-структур с атрибутом GRAPHIC. Графический режим определяется автоматически и не требует изменения, как правило. SETGRAPHIC перекрывает режим автоопределения режима для следующего открываемого SCREEN. Разрешенные для РЕЖИМа значения:


    Dec  Hex        Режим

    ---  ---        --------

     90   5Ah        Текстовый

    121   79h        EGA

     89   59h        VGA

     87   57h        SVGA

Если экран уже открыт как графический, SETGRAPHIC(90) не повлияет на него. Если же экран ЕЩЕ не в графическом режиме, SETGRAPHIC(90) принудительно вызовет вывод следующих экранов в текстовом режиме, даже если у них установлен атрибут GRAPHIC.

Пример:


  GraphScreen   SCREEN(25,80),GRAPHIC

                !описание структуры экрана

              .

  CODE

  SETGRAPHIC(90)     !Следующий экран принудительно в текст

  OPEN(GraphScreen)  !GraphScreen открыть в текстовом режиме

См. также: GRAPHIC

SETMOUSE (позиционирование курсора мышки)


          SETMOUSE([строка][,столбец])

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

SETMOUSE размещает курсор мышки на экране. Если СТРОКА и СТОЛБЕЦ опущены, то SETMOUSE выключает курсор мышки. Если программа собирается использовать мышь, то по крайней мере, один SETMOUSE требуется (вероятно где-то ближе к началу программы).

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

Пример:


  SETMOUSE()                   !Выключить мышку

  SETMOUSE(1,1)                !Включить в верхнем левом углу

См. также: LOADSYMBOLS, USESYMBOLS

SETNOBLINK (запретить мигание)


          SETNOBLINK

SETNOBLINK запрещает мигание на экране. Обычно, фон можно раскрасить в 8 цветов. При запрещенном мигании, бит отвечающий за мигание может быть использован как бит яркости фона. Это позволяет использовать для фона те же 16 цветов, что и для текста.

Монохромные или CGA мониторы НЕ поддерживают запрещение мигания. Таким образом, для SETNOBLINK нужен, как минимум, EGA.

Пример:


   SETNOBLINK                    !Выключить мигание

   SETCOLOR(OEh)                 !  установить черный на желтом

   PAINT                         !  и закрасить экран

См. также: SETBLINK, Коды Цветовых Стилей

SETTEXT (установить размер экрана в текстовом режиме)


           SETTEXT(строк,столбцов)

строк Целая константа, переменная или выражение, задающее число строк на физическом экране в текстовом режиме.
столбцов Целая константа, переменная или выражение, задающее число столбцов на физическом экране в текстовом режиме.

SETTEXT позволяет точно задать, скажем, режим 43 или 50 строк. Без применения SetText, текстовый режим остается таким же, каким он был при запуске программы.

SETTEXT использует метод наилучшего размещения для параметров СТРОК и СТОЛБЦОВ. Видеоадаптер может поддерживать различные текстовые режимы, так что, в принципе, SETTEXT(200,200) может достичь максимально возможного разрешения в текстовом режиме.

Пример:


  R# = ROWS()                !Сохраняем текущие параметры экрана

  C# = COLS()                !R# - строки и C# - столбцы

  GraphicScreenProc          !Вызываем проц. с графическ.экраном

  SETTEXT(R#,C#)             !Возвращаемся к предыдущ. значениям

См. также: ROWS, COLS

SHOW (показать на экране)


          SHOW([строка][,столбец],выражение[,формат])

строка Числовое значение или выражение, которое задает строку на экране, в которую будет выведено ВЫРАЖЕНИЕ. По умолчанию - последняя строка, в которой происходил вывод.
столбец Числовое значение или выражение, которое задает столбец, в который будет выведено ВЫРАЖЕНИЕ. По умолчанию - последний столбец, в который производился вывод.
выражение Метка переменной, константы, числовое или строковое выражение.
формат Шаблон формата или метка строки (STRING) описанной с форматом вывода (picture).

SHOW выводит переменные или выражения прямо на экран. Если выражение слишком длинно, чтобы разместиться в строке, оно усекается. Чтобы показать, что какие-то параметры пропущены, требуются запятые. То, что выводит SHOW, затирает то, что было ранее на экране.

Пример:


  SHOW(1,1,TODAY(),@D3)               !Показать дату

  SHOW(,,CLOCK(),@T3)                 !Показать время в том мес-

                                      !те, куда был последний

                                      !вывод

  SHOW(1,80 - SIZE(Msg),Msg)          !Выровнять сообщение впра-

                                      !во

  SHOW(25,1,'Жми кнопочку, и продолжим')!Вывод подсказки

TYPE (вывести строку на экран)


          TYPE(строка)

    

строка Строковая константа, переменная или выражение.

TYPE выводит строку на стандартное устройство вывода (STDOUT). Пока не определено иначе, в качестве STDOUT DOS использует устройство CON. Строка появится на экране начиная с текущего положения курсора. Можно использовать SETCURSOR, чтобы разместить курсор в нужном месте.

Устройство "CON" распознает символы CR, LF, TAB и BS. Перевод строки (LF) переводит курсор на строку ниже текущей. LF на последней строке экрана приводит к прокрутке всего экрана вверх на одну строку.

Пример:

    TYPE(Cus:Notes)           !Вывести поле примечаний



    SETCURSOR(1,25)           !Идем в самый низ экрана

    TYPE(@LF5)                ! и прокрутим вверх 5 строк

См. также: SETCURSOR, Элементы Управления Принтером

ВИДЕОФУНКЦИИ

BACKCOLOR (возвращает цвет фона)


          BACKCOLOR(строка,столбец)

строка Числовое значение или выражение, которое задает строку на экране.
столбец Числовое значение или выражение, которое задает столбец на экране.

BACKCOLOR возвращает цвет фона для указанного знакоместа. Возвращаемое значение лежит в диапазоне от 0 до 15 включительно, что соответствует шестнадцати цветам переднего плана. Если параметры выходят за допустимые пределы, то возвращается ноль.

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

Возвращаемый тип данных: BYTE

Пример:


  SETCOLOR(BACKCOLOR(1,1)+(FORECOLOR(1,1)*16)!Поменять цвета

                                             !местами

  SaveBack = BACKCOLOR(1,1)           !Сохранить цвет фона

См. также: SETCOLOR, FORECOLOR, MAKECOLOR, Коды Цветовых Стилей

COLOR (возвращает код цветового стиля)


         COLOR(строка,столбец)

Функция COLOR возвращает активный для знакоместа с координатами (СТРОКА,СТОЛБЕЦ) код цветового стиля (комбинацию цветов фона и переднего плана).

Возвращаемый тип данных: BYTE

Пример:


  SaveColor = COLOR(1,1)              !Сохранить раскраску

См. также: BACKCOLOR, FORECOLOR, MAKECOLOR, Коды Цветовых Стилей

FORECOLOR (возвращает цвет переднего плана)


          FORECOLOR(строка,столбец)

FORECOLOR возвращает цвет текста для знакоместа с координатами (СТРОКА,СТОЛБЕЦ). Возвращаемое значение лежит в диапазоне от 0 до 15 включительно. Если параметры выходят за допустимые пределы, то возвращается ноль.

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

Возвращаемый тип данных: BYTE

Пример:


   SETCOLOR(BACKCOLOR(1,1)+(FORECOLOR(1,1)*16))!Поменять цвета

                                               !местами

 SaveFore = FORECOLOR(1,1)            !Сохранить цвет текста

См. также: SETCOLOR, BACKCOLOR, MAKECOLOR, Коды Цветовых Стилей

GRAPHIC (возвращает текущий видеорежим)


          GRAPHIC(n)

n Целочисленная константа, переменная или выражение.

Функция GRAPHIC возвращает байт, содержащий текущий внутренний видеорежим. В зависимости от режима, возвращается следующее:


   Dec. Hex.       Режим

   ---  ----       ----

   90   5Ah        Текстовый

   121  79h        EGA

   89   59h        VGA

   87   57h        SVGA

GRAPHIC(0) возвращает тип адаптера (EGA, VGA, SVGA) если текущий экран открыт не в графическом режиме. GRAPHIC(1) возвращает одно из приведенных выше значений для графических режимов или 5Ah для текстового.

GRAPHIC(1) проверяет, не находится ли экран в графическом режиме и, если так, то какой адаптер используется. GRAPHIC(0) обычно используется для определения типа адаптера дисплея перед открытием экрана в графическом режиме.

Возвращаемый тип данных: Byte

Пример:


      EGA        EQUATE(121)

      VGA        EQUATE(89)

      SVGA       EQUATE(87)

   GraphScreen   SCREEN(25,80),GRAPHIC

                 .

     CODE

     X# = GRAPHIC(0)

     IF X# = EGA OR X# = VGA OR X# = SVGA

       OPEN(GraphScreen)

       CASE GRAPHIC(1)

       OF  EGA

       OROF VGA

         SHOWIMAGE(1,1,25,80,'EGALOGO.PCX',1)

         OF SVGA

         SHOWIMAGE(1,1,25,80,'SVGALOGO.PCX',1)

      . .

См. также: SETGRAPHIC

LOOK (считать символ(ы) с экрана)


          LOOK(строка,столбец,шаблон)

    

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

Функция LOOK считывает ASCII-коды символов с экрана, начиная со знакоместа, с координатами (СТРОКА,СТОЛБЕЦ). Если какие-то параметры опущены, то чтобы это отметить, требуются запятые. LOOK работает одинаково как в текстовых, так и в графических режимах. (SPA - интересно, а для русских букв в графике работает?)

Возвращаемый тип данных: STRING

Пример:


  PageNumber = LOOK(1,75,@N2)         !Получить номер страницы

  Cus:AccountNumber = LOOK(,,@NO5)    !Считать из последней выве

                                      ! денной позиции и помес-

                                      ! тить в номер лиц. счета

  LastName = LOOK(5,20,@S20)          !Считать имя

MAKECOLOR (возвращает код цветового стиля)


          MAKECOLOR(текст,фон)

текст Целая константа, переменная или выражение в диапазоне 0..15, представляющая собой цвет переднего плана (или текста).
фон Целая константа, переменная или выражение в диапазоне 0..15, представляющая собой цвет заднего плана (или фона).

MAKECOLOR возвращает код цветового стиля для заданной комбинации цветов текста/фона.

Возвращаемый тип данных: BYTE

Пример:


   MAKECOLOR(7,0)        returns 7      White on Black

   MAKECOLOR(7,1)        returns 23     White on Blue



   ColorStyle = MAKECOLOR(7,1)    !Set ColorStyle variable to 23

   SETCOLOR(ColorStyle)           ! and use it to set the color

См. также: FORECOLOR, BACKCOLOR, COLOR, SETCOLOR, Коды Цветовых Стилей

MOUSECOL (X-координата мышки)


          MOUSECOL()

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

Возвращаемый тип данных: BYTE

Пример:


  SaveMouseCol = MOUSECOL()          !Save mouse column position

MOUSEROW (Y-координата мышки)


          MOUSEROW()

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

Возвращаемый тип данных: BYTE

Пример:


  SaveMouseRow = MOUSEROW()             !Save mouse row position

ПРОЦЕДУРЫ КЛАВИАТУРЫ

ALIAS (установить альтернативный код клавиши)


             ALIAS([код,новый-код])

код Числовой код или EQUATE-метка кода клавиши.
новый-код Числовой код или EQUATE-метка кода клавиши. Можно использовать неприсвоенные ранее коды.

ALIAS изменяет генерируемый при нажатии клавиши код. НОВЫЙ-КОД не находится в таблице кодов клавиш. Коды от 700 до 999 не присвоены, и могут быть использованы как НОВЫЕ-КОДЫ. Практический эффект от этого возможность запретить реагировать на КОД, если ваша программа не проверяет НОВЫЙ-КОД. Если оба параметра опущены, то ALIAS отменяет все переназначения клавиш.

Пример:


    ALIAS(F3Key,F1Key)              !Help теперь по F3

    ALIAS(F1Key,F3Key)              ! а нажатие F1 рассматрива-

                                    ! ется как нажатие F3



    ALIAS(256,999)                  !Обзовем по-другому клавишу

                                    ! ESC

    ALIAS                           !Отменим все переназначения

См. также: Equate-коды клавиш

ASK (получить один символ)


          ASK

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

Пример:


    SHOW(25,1,'Жми кнопочку, и продолжим') !Показать сообщение и

    ASK                                   !ждать нажатия клавиши



    LOOP WHILE KEYBOARD()       !Опустошаем буфер клавиатуры

      ASK                       !  не обрабатывая нажатия клавиш

    .

См. также: ENTRY

PRESS (поместить код в буфер)


       PRESS(   код    ) 

               строка

код Числовая константа или EQUATE-метка кода клавиши.
string Строковая константа, переменная или выражение.

PRESS имитирует нажатия на клавиши во внутреннем буфере клавиатуры Клариона (а не буфере DOS). PRESS(КОД) помещает в буфер одно нажатие. PRESS(СТРОКА) помещает в буфер строку целиком. Строка заполняет буфер (статическую очередь), размер которого ограничен лишь доступной основной памятью. На каждое нажатие в строке отводится 32 байта, т.е теоретический максимум равен примерно 2500 символов в большинстве "нормальных" приложений.

Пример:


   IF Action = 'Add'!On the way into a memo field on an add record

   Cus:MemoField = FORMAT(TODAY(),@Dl) &' '& FORMAT(CLOCK(),@T4)

                  !Preload first line of memo with date and time

   PRESS(EnterKey)!  and position user on second line

 .

SETKEYCODE (вернуть код клавиши)


          SETKEYCODE(код)

код Целая константа или EQUATE-метка кода клавиши.

SETKEYCODE заставляет функцию KEYCODE вернуть заданный КОД. КОД НЕ помещается в буфер клавиатуры.

Пример:


   SETKEYCODE(999)    !Заставляем KEYCODE вернуть 999

См. также: ALIAS, KEYCODE, Equate-коды клавиш

ФУНКЦИИ КЛАВИАТУРЫ

ENTRY (принять ввод с клавиатуры)


             ENTRY(строка,столбец,шаблон)

строка Числовое значение или выражение, которое задает строку, на которой производится ввод.
столбец Числовое значение или выражение, которое задает столбец, на котором производится ввод
шаблон Шаблон формата или метка строки, описанной с шаблоном формата. Параметр ШАБЛОН определяет длину поля вормат ввода с клавиатуры в переменную. Переменная показывается и редактируется в режиме реверсного отображения (цвета фона и текста меняются местами).

ENTRY читает нажатия клавиш с клавиатуры. Программа ждет, пока редактирование поля не завершится клавишей завершения поля (обычно ENTER) или клавишей взведенной (через ALERT). ENTRY устанавливает реверсные цвета для СТРОКИ и СТОЛБЦА и включает курсор на время редактирования поля.

Возвращаемый тип данных: STRING

Пример:


  Address = ENTRY(10,12,@S20)             !Ввести адрес

  City = ENTRY(11,12,@S12)                !Ввести город

См. также: ALERT

KEYBOARD (возвращает ожидающее нажатие на клавишу)


          KEYBOARD()

Функция KEYBOARD возвращает первый код из хранящихся в буфере клавиатуры нажатий на клавиши. Используется для определения, есть ли нажатия, которые надо обрабатывать операторами ASK или ACCEPT.

Возвращаемый тип данных: LONG

Пример:


  LOOP UNTIL KEYBOARD()               !Ждем любую клавишу

    ASK

    IF KEYCODE() = EscKey THEN BREAK. !Если ESC,то прервать цикл

  .

См. также: ASK, ACCEPT, Equate-коды клавиш

KEYCODE (возвращает код клавиши завершения поля)


          KEYCODE()

Функция KEYCODE возвращает код клавиши, которой завершилось редактирование поля. Эта функция работает только для результатов функции ENTRY и операторов ASK, SETKEYCODE или ACCEPT.

Возвращаемый тип данных: LONG

Пример:


      LOOP                              !Loop on the display

      ASK                               !  wait for a keystroke

      CASE KEYCODE()                    !Process the keystroke

      OF UpKey                          !  up arrow

        SCROLL(,,,,1)                   !    scroll up one row

        DO GetRecordUp                  !      and get a record

      OF DownKey                        !  down arrow

        SCROLL(,,,,-1)                  !    scroll down one row

        DO GetRecordDn                  !      and get a record

      OF EscKey                         !  esc key

        BREAK                           !    break the loop

    . .                                 !End case, end loop

См. также: ASK, ACCEPT, Equate-метки кодов клавиш

Назад | Содержание | Вперед

В начало Наверх Поиск Рубрикатор Новости сервера Учебный центр Книжный магазин
/cgi-bin/Click.cgi>
Быстрый переход >>>
Комментарии: info@citmgu.ru Техмаркет Компьютерс - техника высокого класса Сети и системы связи   Copyright ©
Design by Andre M. Erofeev