русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Модуль CRT


Дата додавання: 2014-05-08; переглядів: 877.


 

Модуль призначений для роботи з екраном і клавіатурою.

 

Робота з екраном.

 

Робота з екраном виконується в текстовому режимі. Екран розглядається як послідовність рядків. По умовчанню їх 25. Кожний рядок містить 80 позицій - колонок. Кожна позиція характеризується координатами <номер рядка, номер колонки>. Початок координат знаходиться в лівому верхньому куті екрану і має координати (1,1).

1,1

 
 

 


80,25

 

Поточні координати завжди можна взнати, використовуючи функції

WHEREX, WHEREY.

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

GOTOXY (<x>,<y>);

На екрані можна створювати вікна. Вікно - це прямокутна область екрану. Для створення вікна використовується процедура

WINDOW (<x1>,<y1>,<x2>,<y2>);, де

x1,y1 - координати лівого верхнього кута

x2,y2 - координати правого нижнього кута

Після виконання цієї процедури система координат переноситься в лівий верхній кут цього вікна, координати будуть відраховуватись в рамках цього вікна і всі дії будуть відноситись до цього вікна. Якщо координати задано некоректно, то ніяких дій не буде виконано.

Завжди можна взнати координати поточного вікна, використовуючи змінні WINDMAX і WINDMIN. В кожній змінній зберігається значення Х і У в молодшому і старшому файлі. Отримати ці значення можна використовуючи функції LO і HI.

x: = LO (WINDMIN) + 1; x2: = LO (WINDMAX) + 1;

y: = HI (WINDMIN) + 1; y2: = HI (WINDMAX) + 1;

Для очищення поточного вікна використовується процедура

CLRSCR;

. При цьому вікно заливається кольором поточного фону. Курсор встановлюється в позицію (1,1).

 

Робота з кольором

Кольорова гама складається з двох кольорів: кольору фону і кольору символів.

 

Таблиця кольорів

 

Константа кольору Числове значення кольору Колір
BLACK чорний
BLUE синій
GREEN зелений
CYAN голубий
RED червоний
MAGENTA фіолетовий
BROWN коричньовий
LIGHTGRAY яскраво-сірий
DARKGRAY темно-сірий
LIGHBLUE яскраво-синій
LIGHTGREEN яскраво-зелений
LIGHTCYAN яскраво-голубий
LIGHTRED яскраво-червоний
LIGHTMAGENTA яскраво-фіолетовий
YELLOW жовтий
WHITE білий
BLINK Мерехтіння

 

Для встановлення кольору символів використовується процедура

TEXTCOLOR (<колір>);

Для встановлення кольору фону використовується процедура

TEXTBACKGROUND (<колір>);

Для кольору фону використовуються тільки перші 8 кольорів (0 .. 7).

Задати кольори можна використовуючи системну константу TEXTATTR таким чином:

 

TEXTATTR: = <колір символів> + 16*<колір фону>[+128];

HIGHRIDEO; - включення яскравості кольору символів

LOWVIDEO; - виключення яскравості кольору символів

NORMVIDEO; - повернення кольорового режиму, що був на початок роботи програми

 

Використання звуку

Можна використовувати вбудовані динаміки для подачі звукових сигналів.

 

Включення звуку виконується за допомогою процедури

SOUND (<частота в ГЦ>);

Нормальні значення частоти від 32 гц до 8 кгц.

Звучання не закінчиться до тих пір, поки не виконається процедура виключення звуку

NOSOUND;

Щоб затримати виконання програми використовується процедура

DELAY (<мл.сек.>);

Наприклад, цикл для озвучення сирени можна записати цикл

For i:=32 to 1000 do

Begin

Sound (i);

Delay (100);

NoSound;

end;

 

Робота з клавіатурою

 

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

Можна працювати з самим буфером Для цього використовується дві спеціальні функції:

KEYPRESSED - логічна функція для аналізу натиснення клавіш.

= TRUE, якщо в буфері клавіатури присутній хоча б один символ.

= FALSE, якщо буфер пустий.

READKEY - зчитування одного символу з буферу клавіатури. Функція повертає символьне значення коду, що є на цей момент в буфері клавіатури першим. Якщо буфер пустий, то програма припиняється до натиснення довільної клавіші. Символи натиснутих клавіш не відображаються на екрані.

Клавіші Ctrl, Shift, Alt, NumLock, CapsLock не дають коду символу.

 

При роботі з буфером клавіатури корисно на початку програми його почистити:

WHILE Keypressed do CH:= ReadKey;

Використання клавіш в регістрі Alt, функціональних клавіш і клавіш управління курсором посилають у буфер 2 символи, перший з них 0, другий - код клавіші.

Для перевірки клавіш в регістрі Ctrl використовується символ " ^ " .

C IN [ ^F, ^P, ^S].

UpCase (<символ>); - перевід символу в верхній регістр.

Можна отримати в тексті програми "образ" будь-якої управляючої функціональної клавіші, якщо натиснути комбінацію клавіш Ctrl+P, а потім саму клавішу.

Коди службових клавіш:

Tab-9; Enter-13; Esc-27

Коди функціональних клавіш:

F1 - 0 59

F2 - 0 60

.........

F10 - 0 68

F11 - 0 133

F12 - 0 134

- 0, 75; - 0, 80; - 0, 76; - 0, 82;

 

 

Для створення світлового меню враховується, що один з пунктів повинен бути виділений в порівнянні з іншими. Тобто перед його виводом колір фону встановлюється іншими.

Для формування вертикального меню обробляється натиск на клавіші - стрілка вгору, стрілка вниз, Enter, Esc. Для горизонтального - стрілка вправо, стрілка вліво, Enter, Esc.

Натиск всіх інших ігнорується. Розглянемо вертикальне меню. При натиску на клавішу "стрілка вгору" номер поточного пункту меню повинен зменшитися на 1. Якщо при зменшенні номер стане рівним 0, то встановлюємо номер виділеного пункту - останній. З останнього пункту організується перехід на перший.

При виборі Esc - вихід з меню.

При виборі Enter - виклик процедури обробки відповідного пункту меню.

 

 


<== попередня лекція | наступна лекція ==>
Розробка програм з використанням власних бібліотек(модулів) | Розробка програм з використанням модуля CRT


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн