Program CenterText2; {заголовок программы, имя программы – CenterText2}
Uses{начало раздела подключения модулей}
CRT; {подключение модуля CRT}
Begin{начало раздела описания логики программы}
TextBackGround(Black) ;
{Установка черного цвета в качестве текущего для фона (используется константа Black, соответствующая черному цвету)}
TextColor(White);{установка белого цвета в качестве текущего для текста}
CIrScr;{очистка экрана. Поскольку текущий цвет фона – черный, то весь экран будет окрашен этим цветом}
GotoXY(24, 11); {перемещение каретки в строку 11 (напомним, что отсчет строк ведется от 0, поэтому это будет 12-я строка) и в символ номер 24 (аналогично, это будет 25-ый символ в строке от левого края экрана)}
Write('Строка, выровненная по центру');
{выводим строку из позиции каретки}
ReadKey;{программа приостанавливается до нажатия пользователем клавиши}
ClrScr; {очистка экрана. Экран окрашивается в черный цвет. Все программы, выполняющиеся после завершения данной, будут использовать стандартную цветовую гамму}
End.{Конец раздела описания логики программы, информация, которая выводилась на экран в процессе работы программы, удалена}
Иногда возникают ситуации, когда программе необходимо определить положение курсора. Это может понадобиться, например, при одновременном выводе информации и чтении строк, введенных пользователем, которые отображаются на экране автоматически (так называемый ввод с эхом). Возможности Turbo Pascal по вводу информации мы будем изучать позже, поэтому в данный момент рассмотрим простой пример на определение положения каретки. Напишем программу, которая будет выводить на экран две строки: «Первая строка» и «Вторая строка», причем вторая строка будет выводиться так, чтобы затереть последние два символа первой. Для решения данной задачи, необходимо вывести первую строку на экран процедурой WriteLn, определить координаты каретки, затем передвинуть ее в, ту же экранную строку, но на два символа левее, то есть на предпоследний символ выведенной строки, и вывести вторую строку процедурой Write.
Для определения положения каретки в модуль CRT включены функции whereX (англ.Where Х — где горизонтальная координата?) и WhereY (англ. Where Y — где вертикальная координата?). Данные функции служат для определения, соответственно, горизонтальной и вертикальной координаты текущего положения каретки. Отличия функций от процедур заслуживают особого внимания и обсуждаются в разделе, описывающим создание собственных процедур и функций, а пока будем относиться к функциям как к переменным, описанным в модуле CRT, и содержащим в каждый момент времени выполнения программы какие-либо значения. Какое значение содержится в этой «переменной», определяется назначением функции. Например, функция ReadKey, рассмотренная выше, возвращает значение нажатой пользователем клавиши, а функция WhereX — горизонтальную координату каретки.
Нам необходимо сохранить значения координат каретки в своих внутренних переменных, следовательно, мы будем использовать функции WhereX и WhereY в правых частях оператора присваивания.