Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать

Процедури і функції управління курсором

Для управління положенням курсору в модулі Crt використовується процедура GotoXY і функції WhereX і WhereY.

Процедура

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 видаляє рядок, в якому знаходиться курсор, і всі розташовані нижче рядки переміщуються на одну позицію вверх. Самий нижчий рядок зафарбовується кольором фону.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]