Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Процедура

Читайте также:
  1. III. Процедура защиты выпускной квалификационной работы в Государственной аттестационной комиссии
  2. ВОПРОС 24. НАБЛЮДЕНИЕ КАК ПРОЦЕДУРА БАНКРОТСТВА.
  3. ВОПРОС 25- ФИНАНСОВОЕ ОЗДОРОВЛЕНИЕ КАК ПРОЦЕДУРА БАНКРОТСТВА
  4. ВОПРОС 27. КОНКУРСНОЕ ПРОИЗВОДСТВО КАК ПРОЦЕДУРА БАНКРОТСТВА
  5. ВОПРОС 29. МИРОВОЕ СОГЛАШЕНИЕ КАК ПРОЦЕДУРА БАНКРОТСТВА.
  6. ВОПРОС 32. ВНЕШНЕЕ УПРАВЛЕНИЕ КАК ПРОЦЕДУРА БАНКРОТСТВА
  7. Глава 4 Процедура и основные характеристики психологического
  8. Организация и процедура проведения социально-психологической диагностики
  9. Основная процедура поиска и устранения неполадок сетей
  10. Основные подходы и процедура присвоения марочного названия

GotoXY (X, Y: WORD);

переміщує курсор в позицію поточного вікна з відповідними координатами (X,Y), при цьому позиція (1,1) відповідає верхньому лівому куту вікна. Ця процедура впливає на процедури Write і WriteLn, які будучи використаними після неї, будуть здійснювати вивід символів, починаючи з позиції з вказаними координатами.

Якщо значення будь-якого з параметрів X чи Y буде некоректним (наприклад перевищить розмір вікна), то виклик процедури GotoXY буде проігнорований.

Нижче наведений досить корисний приклад використання процедури GotoXY, який демонструє можливість контролю операцій вводу типізованих змінних, особливо змінних цілочислових типів. Функція IOResult являється стандартною і описана в модулі System. Ця функція повертає стан останньої виконаної операції вводу-виводу. Вона застосовується разом з директивою компілятора {$I-}, яка вимикає автоматичний контроль операцій вводу-виводу і передає інформацію безпосередньо у функцію IOResult. Якщо ця директива не використовується, то неправильний ввід даних призведе до виникнення помилки виконання, яка перерве виконання програми. Використання функції IOResult дозволяє самостійно обробляти такого роду помилки.

{використання процедури GotoXY}

USES Crt;

VAR

Number: WORD;

Flag: BOOLEAN;

BEGIN

ClrScr; {очищення екрану}

Flag: = False;

{$I-} {вимкнення контролю операцій вводу-виводу}

REPEAT

ClrEOL; {попереднє очищення рядка}

Write (‘Введіть число:’);

Read (Number); {ввід числа}

IF IOResult=0 THEN Flag: = True {якщо введене число типу WORD}

ELSE GotoXY (1, WhereY-1);

UNTIL Flag;

{$I+} {вмикання контролю операцій вводу-виводу}

WriteLn;

WriteLn (‘правильний ввід’);

Delay (1000);

END.

Для визначення координат місцезнаходження курсору в модулі Crt використовуються функції

WhereX: WORD;

і

WhereY: WORD;

Результатом будуть, відповідно, координати X і Y поточного вікна. Ці функції часто застосовуються для того, щоб не вказувати конкретні координати місцезнаходження курсору і зробити програму більш універсальною.

ПРОЦЕДУРИ РОБОТИ З РЯДКАМИ

Для роботи з рядками в модулі Crt використовуються процедури ClrEOL, InsLine і DelLine.

Процедура ClrEOL видаляє символи в рядку від поточної позиції курсору до правої границі поточного вікна. Видалені символи замінюються пропусками, тобто рядок очищується. Колір рядка визначається поточним кольором курсору.

Процедури InsLine і DelLine застосовуються для управління „прокруткою”, яка вже згадувалася. InsLine вставляє пустий рядок на місце рядка, визначеному поточним місцезнаходженням курсору. Всі рядки, які розташовані нижче, послідовно переміщуються вниз на одну позицію, а самий нижчий рядок видаляється з екрану.

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

ФУНКЦІЇ ДОПИТУ КЛАВІАТУРИ

Для допиту вмісту буфера клавіатури в модулі Crt застосовуються функції ReadKey і KeyPressed.

Функція

KeyPressed: BOOLEAN;

повертає логічне значення True, якщо в буфері клавіатури міститься хоча б один символ, тобто була натиснута клавіша; і False, якщо буфер пустий, тобто натиснення клавіші не було. При запуску програми буфер очищується. Дані надходять в буфер при натисненні будь-якої клавіші на клавіатурі, за винятком клавіш [Ctrl], [Shift], [Alt], а також клавіш [NumLock], [CapsLock] і деяких інших, і зберігаються в ньому до тих пір, поки не будуть зчитані процедури чи функції вводу даних, або сам буфер не буде очищений програмно. Окремо, повністю очищають клавіатурний буфер процедури Read і ReadLn, а також операція Reset для файлів, зв’язаного з консоллю.

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

IF KeyPressed THEN...;

може виявитися не зовсім коректною. Для цього необхідно функцію KeyPressed використовувати разом з функцією ReadKey. А найчастіше функція KeyPressed застосовується в конструкціях типу

REPEAT UNTIL KeyPressed;

які перевіряють натиснення клавіші під час виконання циклів.

На відмінну від процедур Read і ReadLn, які очищують весь буфер після звертання до нього, функція

ReadKey: CHAR;

зчитує з буфера і повертає в програму останній введений символ.

Буфер клавіатури організований у виді черги, тобто функція ReadKey при звернені до буфера зчитує (і, відповідно, видаляє) з нього найперший введений символ по принципу „перший прийшов – перший пішов”. Якщо буфер пустий, то функція призупиняє виконання програми і чекає натиснення клавіші. Символ, який відповідає нажатій клавіші, не відобразиться на екрані. Це називається „ввід без відлуння на екран”.

Для обробки даних вводу з клавіатури можна також використовувати спеціальні змінні модуля Crt: CheckBreak і CheckEOF.

Змінна CheckBreak задає режим перевірки використання комбінацій клавіш [Ctrl+Break] під час виконання операцій вводу-виводу буде перевіряти роботу програми. В решта випадках натиснення [Ctrl+Break] ніяк не буде впливати.

Якщо значення змінної CheckBreak рівне False, переривання роботи програми при натисненні комбінації клавіш [Ctrl+Break] стає неможливим.

Якщо на клавіатурі немає клавіші [Break], то її, найчастіше, замінює клавіша [ScrollLock], і, відповідно, комбінацією клавіш, яка здійснює переривання роботи програми, буде [Ctrl+ScrollLock].

Інша змінна CheckEOF, задає режим вводу з клавіатури ознаки кінця файлу (#26). Цей код записується в буфер при натисненні комбінації клавіш [Ctrl+Z].

По замовчуванню значення CheckEOF рівне False, при натисненні [Ctrl+Z] в кінець рядка буде записаний символ #26 і він не буде інтерпретований як ознака кінця файлу. Якщо встановити значення CheckEOF рівним True, то можна організувати ввід текстових файлів з клавіатури, закінчуючи їх ввід ознакою кінця файлу.

ПРОЦЕДУРИ УПРАВЛІННЯ КОЛЬОРОМ




Дата добавления: 2015-09-11; просмотров: 15 | Поможем написать вашу работу | Нарушение авторских прав

Truncate(f); | Для доповнення текстового файлу використовують режим до запису. | Квартира з номером 34 у 13 будинку з номером 12. | Release(p); | Формування. | Readln(a); | New(q); | USES CRT; | Заголовок. | Xx: real; |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав