Управление курсором
В текстовом режиме на экране, как правило, присутствует курсор – мерцающий служебный элемент, назначением которого является указание позиции на экране, начиная с которой будет производиться вывод или ввод информации. Положение курсора на экране можно проверять и изменять, используя подпрограммы CRT. Чтобы установить курсор в некоторой конкретной позиции, используется процедура GoToXY, два параметра которой определяют позицию знакоместа на экране, в которую будет перемещен курсор. Первый параметр задает номер позиции по горизонтали (номер колонки), второй параметр – номер по вертикали (номер строки). Строки и колонки нумеруются от единицы.
Например, вызов процедуры GoToXY(1,1) переместит курсор в крайнюю левую верхнюю позицию экрана, а вызов процедуры GoToXY(80,25) – в нижнюю правую.
Заметим, что второй вызов даст такой эффект только в том случае, когда текущий текстовый режим равен BW80, CO80, Mono. В общем случае необходимо учитывать симло строк и столбцов для конкретного режима. Если, например, действует режим CO80+Font8x8 для адаптера VGA (50 строк по 80 символов), то приведенный выше вызов процедуры переместит курсор примерно в середину правой крайней колонки.
Чтобы определить текущее положение курсора, можно использовать две функции без параметров - WhereX и WhereY, которые как видно из их названий, возвращают, соответственно, горизонтальную и вертикальную координаты курсора.
Задание. Наберите, протестируйте и рассмотрите небольшую иллюстративную программу, приведенную ниже.
Program Count;
Uses
Crt;
Var
i : word;
Begin
GotoXY(1,WhereY);
write(' ');
for i := 1 to 1000 do
begin
GotoXY(1,WhereY);
write(i);
Delay(100);
end;
End.
Прием, используемый в этой программе, можно применять для нужд трассировки. Например, при обработке очень больших файлов, которая может продолжаться довольно долгое время, имеет смысл выводить "успокаивающую" информацию, наглядно показывающую пользователю, что компьютер не "завис" (некоторые системы выдают процент сделанной работы или что-либо подобное).
Дата добавления: 2015-05-16; просмотров: 802;