Как изменить цвет текста в паскале

от admin

Textcolor, Window, Textbackground в Pascal.

Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится текст. Процедура Window задает окно, в котором будет выводиться текст.

Строка №2. Подключаем к программе модуль Crt. Мы уже упоминали этот модуль, когда использовали процедуру очистки экрана Clrscr. Помимо этого данный модуль подключается к программе для управления способами вывода на экран. Он позволяет устанавливать курсор в нужную позицию на экране (gotoxy), устанавливать цвет фона (textbackground) и цвет выводимых символов (textcolor) и многое другое. В конце обязательно ставится точка с запятой.

Строка №5. Записываем процедуру Window. Эта процедура определяет, где на экране будет находиться текстовое окно. Window (x1, y1, x2, y2): (x1, y1) — координаты для верхнего левого угла окна. (x2,y2) – координаты для нижнего правого угла окна. Таким образом, запись Window (20,5,60,20) означает, что у нас задается окно. Его координаты: левый верхний угол (20,5) и нижний правый угол (60,20). Ниже дана простая схема.

Самый большой черный прямоугольник – это весь экран. В компиляторе Turbo Pascal ширина экрана равна 80 столбцам и 43 строкам (для Free Pascal — 80 столбцов и 38 строк). Красный прямоугольник внутри – это экран, определяемый процедурой Window (20,5,60,20). Самое главное здесь – запомнить, что координаты отмеряются с верхнего левого угла. Теперь все действия, которые будут производится в программе (например, вывод сообщения на экран) будут производится в этом окне.

В строке №6 записываем процедуру Textbackground, которая устанавливает цвет для фона, на котором будет выводиться текст. После записи слова Textbackground в скобках указывается значение. Мы указали значение 14. Это число соответствует желтому цвету в палитре цветов Паскаля. Ниже находится таблица, в которой указаны все 16 цветов, входящих в палитру цветов Паскаля.

В строке №7 записываем процедуру Textcolor. Эта процедура устанавливает цвет для выводимого на экран текста. После записи Textcolor в скобках записываем значение 1, что соответствует синему цвету.

palitra tsvetov v Pascal

Строка №8. Выводим на экран сообщение.

Теперь набрем программу в Паскале и запустим ее.

textbackground textcolor window

textbackground textcolor window.

У нас выводится сообщение. Обратите внимание, что оно выводится не в начале экрана, а в начале невидимого экрана, определенного процедурой Window. Кроме того, сообщение выводится, синим цветом, на желтом фоне. Это действие Textbackground и Textcolor.

Дополнение к материалу.

CRT – английская аббревиатура, которая обозначает электронно-лучевую трубку. Таким образом, название модуля Crt подчеркивает, что он умеет управлять способами вывода на экран.

Оформление текста на экране в Паскаль

Оформление текста на экране в Паскаль

Оформление и разметку текста используют довольно редко , однако бывают случаи , когда они вам пригодятся.

Возможно , когда-нибудь вы столкнетесь с такой задачей : как оформить текст в паскале.

В данной статье вы узнаете о том , как изменить цвет текста , как добавить цветной фон , как очистить экран и т.д.

Модуль crt

Если вы не подключите данный модуль , то функции по оформлению текста не будут работать.

После того , как вы его подключите , программа будет работать в новом окне размером 80×25. Представлять такое окно можно как таблица в 25 строк и 80 столбцов.

Рабочее окно программа в модуле crt

GotoXY

Применение gotoxy

TextColor

Стандартно , в языке программирования паскаль текст выводится строго черным цветом , но его также можно изменить. Изменить цвет текста можно командой textcolor. Чтобы изменить цвет текста требуется использовать команду textcolor(red) , а в скобках указать цвет ( например red ). В скобках можно использовать название цвета , а также код цвета.

Но стоит помнить , что команда textcolor не меняет весь текст на экране ,а только тот , который выводится после этой команды.

Результат выполнения данной программы будет выглядеть примерно так :
Применение textcolor

Clrscr

TextBackGround

Результат выполнения данной программы будет выглядеть так :
Применение textbackground
С помощью данной команды можно задать фон всему рабочему окну программы,
Сделать это можно так :

23.1. Модуль Crt

Этот модуль облегчает работу с клавиатурой и экраном, позволяет создавать окна, задавать цвет текста и фона для цветного дисплея. Содержит около 20 процедур и функций. В зависимости от типа дисплея и драйвера (программы, обеспечивающей связь компьютера с дисплеем) поддерживает до 16 цветовых текстовых режимов.

Замечание. При исполнении на компьютерах с процессорами последних разработок модуль Crt работает некорректно, выдавая ошибку: 200 Division by zero. В Интернете можно найти комплект программ, исправляющих этот недостаток. Такой комплект CrtDevice можно переписать в лаборатории кафедры вычислительной техники.

Рассмотрим наиболее часто употребляемые процедуры и функции модуля.

23.1.1. Работа с клавиатурой и звуком

1) ReadKey — функция, возвращающая символ нажатой клавиши без вывода его на экран. Тип результата – Char. Аргумента у функции нет. Специальные клавиши на клавиатуре (функциональные F1 – F12, управления курсором, Alt, Ctrl и т.д.) генерируют расширенные коды. При нажатии такой клавиши функция ReadKey возвращает сначала нулевой, а затем — расширенный код клавиши.

Читать:
Как сделать ссылку на добавление в календарь

Пример. S := ReadKey;

Приводимый ниже фрагмент программы показывает, как можно применить функцию для организации итерационных циклов.

Writeln(’Продолжаем?- Да/Нет (Д/Н)’);

S := ReadKey;

Until (S=’H’) OR (S=’н’) ;

2) KeyPressed -функция без аргумента, возвращает значение True (истина), если клавиша нажата, и False (ложь) в противном случае. Символ, соответствующий нажатой клавише, остается в буфере клавиатуры. Функция не распознает клавиш перевода регистра (Shift, Alt, NumLock и т.д.). Может использоваться для организации итерационных циклов следующего вида

Until KeyPressed;

Цикл заканчивается, если нажата любая клавиша. Например, текст программы может завершаться следующим фрагментом:

WriteLn(’Работа окончена. Нажмите любую клавишу . ’);

Repeat Until KeyPressed;

3) Delay(задержка : word); – процедура, которая выполняет задержку на число миллисекунд, задаваемых параметром задержка.

4) Sound(частота : word); – процедура, которая включает внутренний излучатель звука, который будет издавать звуковой сигнал с частотой, заданной параметром частота.

5) NoSound выключает внутренний излучатель звука.

Внимание! Звуковой сигнал, включенный процедурой Sound, будет звучать до тех пор, пока его не выключить обращением к процедуре NoSound.

Если в программе часто используются звуковые эффекты, то целесообразно написать процедуру, которая обеспечит излучение звука заданной частоты в течение заданного промежутка времени. Эта процедура может быть такой.

Procedure Zvuk(freq, long : word);

23.1.2. Управление цветом

Если используется цветной графический дисплей с адаптером EGA (Enhansed Graphic Adapter), VGA (Video Graphic Array) и др., то можно задавать и изменять цвет текста и фона с помощью следующих процедур:

1) TextBackGround (Color:Byte); задает цвет фона.

2) TextColor(Color:Byte); – задает цвет текста.

Параметр Color (цвет) может задаваться выражением целого типа, которое должно принимать значения в диапазоне 0..15, или одной из определенных в модуле Crt констант цветов (название цвета на английском языке). Константы для фонового и основного цвета и их значения приведены ниже:

Black = 0 (черный)

DarkGray = 8 (темно-серый)

LightBlue = 9 (светло-синий)

Green = 2 (зеленый)

LightGreen = 10 (светло-зеленый)

Cyan = 3 (бирюзовый)

LightCyan = 11 (светло-голубой)

LightRed = 12 (розовый)

Magenta = 5 (малиновый)

LightMagenta = 13 (светло-малиновый)

Brown = 6 (коричневый)

Yellow = 14 (желтый)

LightGray = 7 (светло-серый)

White = 15 (белый)

Цвет текста может быть любой, а цвет фона – один из восьми первых.

Вместо того чтобы устанавливать раздельно цвет текста и цвет фона указанными выше процедурами, можно воспользоваться определенной в модуле Crt переменной TextAttr, длиной в байт. Ей можно присвоить значение, которое сразу определит текстовые атрибуты. Младшие 4 бита у этой переменной кодируют цвет текста (0..15), следующие 3 бита – цвет фона (0..7), а самый старший (левый) бит позволяет сделать текст мерцающим. Константа мерцания имеет имя Blink, а значение – 128.Для размещения цвета фона в правильных позициях битов, его значение нужно умножить на 16. Например, следующее присваивание:

TextAttr := Yellow + Blue*16 + Blink

Обеспечит вывод желтых мерцающих символов на голубом фоне.

3) TextMode (Mode:Integer); – процедура; задает указанный текстовый режим (mode). Приведем некоторые определенные в модуле Crt константы (слева) для выбора текстовых режимов и их значения (справа):

BW80 = 2;– черно-белый режим с разрешением экрана 80х25 символов;

C80 = 3; – цветной режим с разрешением экрана 80х25 символов;

Font8*8 = 256; – цветной режим с разрешением экрана 80х50 символов;

Более подробное описание этих и других режимов для соответствующих адаптеров можно найти в справочниках.

Предыдущий цветовой режим сохраняется в памяти в переменной LastМode.

Подпрограммы для работы со шрифтом

Вывод текста осуществляется текущим шрифтом. Доступ к свойствам текущего шрифта можно осуществлять как в процедурном, так и в объектно-ориентированном стиле.

Процедуры и функции для доступа к свойствам шрифта сгруппированы парами: если Prop — имя свойства пера, то функция PenProp возвращает значение этого свойства, а процедура SetPenProp(p) устанавливает это свойство:

procedure SetFontSize(size: integer);
Устанавливает размер текущего шрифта в пунктах
function FontSize: integer;
Возвращает размер текущего шрифта в пунктах
procedure SetFontName(name: string);
Устанавливает имя текущего шрифта
function FontName: string;
Возвращает имя текущего шрифта
procedure SetFontColor(c: Color);
Устанавливает цвет текущего шрифта
function FontColor: Color;
Возвращает цвет текущего шрифта
procedure SetFontStyle(fs: integer);
Устанавливает стиль текущего шрифта
function FontStyle: integer;
Возвращает стиль текущего шрифта

Можно также изменять свойства текущего пера через объект Font .

Кроме того, для определения ширины и высоты строки при текущих настройках шрифта используются следующие функции:

Похожие статьи