Лабораторная работа №03_
.pdfText_Attr := Text_Color or Back_Color; SetConsoleTextAttribute(Console_Handle,Text_Attr); Writeln;
Writeln(' НОВЫЕ АТРИБУТЫ ТЕКСТА '); ReadLn;
end.
Программа выводит в окно консоли текст c заданными цветовыми атрибутами
(рис. 13).
Рис. 13
Для этого сначала с помощью API-функции GetStdHandle c параметром STD_OUTPUT_HANDLE определяется дескриптор консоли Console_Handle типа Cardinal, необходимый для выполнения инструкций по управлению выводом на консоль. Далее определяются результирующие цветовые атрибуты текста как комбинация элементарных цветов текста и фона, заданных константами
FOREGROUND_GREEN, BACKGROUND_BLUE и др. (см. приложение 2), с помощью логической битовой операции or («или»). И, наконец, API-функция SetConsoleTextAttribute устанавливает новые атрибуты текста для последующего вывода. Рассмотренные функции и константы заданы в модуле Windows, поэтому его имя указано в разделе uses.
Компиляция консольного приложения выполняется выбором из главного меню команды Project => Compile….
После успешной компиляции программа может быть запущена выбором из главного меню команды Run => Run.
Процесс сохранения проекта консольного приложения стандартный. В результате выбора из главного меню команды File =>Save на экране появляется диалоговое окно Save Project1 As, в котором нужно ввести имя проекта (рис. 14).
Рис. 14
© Буров И.П., 2010 |
11 |
2.Порядок выполнения работы
2.1.Задание
При выполнении работы необходимо:
1)создать в интегрированной среде разработки Turbo Delphi проект консольного приложения в соответствии с заданием (табл. 1), выданным преподавателем;
Таблица 1
№ |
Имя |
Заголовок |
Атрибуты |
|
|
|
|
|
|
|
прило- |
окна |
|
Выводимый текст |
|||||||
вар. |
текста |
|
||||||||
|
жения |
приложения |
|
|
|
|
|
|
|
|
1 |
Console |
Консольное |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
приложение |
синий |
|
|
|
|
|
|
|
|
|
|
Цвет фона: |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
|
серый |
цвет текста - синий: ХХ; цвет фона - серый: ХХ. |
||||||
2 |
Out_Contr |
Управление |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
выводом на |
светло-зеленый |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
консоль |
Цвет фона: |
цвет текста - светло-зеленый: ХХ; |
||||||
|
|
|
серый |
цвет фона - серый: ХХ. |
||||||
3 |
TextToCon |
Вывод текста |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
на консоль |
красный |
|
|
|
|
|
|
|
|
|
|
Цвет фона: |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
|
серый |
цвет текста - красный: ХХ; цвет фона - серый: ХХ. |
||||||
4 |
Attr_Contr |
Управление |
Цвет текста: |
Кодовая страница: ХХХ |
|
|
|
|
|
|
|
|
атрибутами |
светло-красный |
|
АТРИБУТЫ |
ТЕКСТА: ХХХ |
|
|||
|
|
теста |
Цвет фона: |
цвет текста |
- светло-красный: ХХ; |
|
|
|||
|
|
|
синий |
цвет фона - синий: ХХ. |
|
|
|
|||
5 |
API_Use |
Применение |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
функций API |
серый |
|
|
|
|
|
|
|
|
|
|
Цвет фона: |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
|
синий |
цвет текста - серый: ХХ; цвет фона - синий: ХХ. |
||||||
6 |
Dis_Conrol |
Управление |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
экраном |
красный |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
|
Цвет фона: |
цвет текста - красный: ХХ; цвет фона - зеленый:ХХ. |
||||||
|
|
|
зеленый |
|
|
|
|
|
|
|
7 |
Text_Color |
Управление |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
цветом текста |
светло-синий |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
|
Цвет фона: |
цвет текста - светло-синий: ХХ; |
|
|
||||
|
|
|
зеленый |
цвет фона - зеленый: ХХ. |
|
|
|
|||
8 |
Con_Ouput |
Консольный |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
ввод/вывод |
красный |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
|
Цвет фона: |
цвет текста - красный: ХХ; |
||||||
|
|
|
светло-зеленый |
цвет фона - светло-зеленый: ХХ. |
|
|||||
9 |
Text_Output |
Вывод текста |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
с заданными |
синий |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
атрибутами |
Цвет фона: |
цвет текста - синий: ХХ; |
|
|
||||
|
|
|
светло-зеленый |
цвет фона - светло-зеленый: ХХ. |
||||||
10 |
Text_Contr |
Контроль |
Цвет текста: |
Кодовая страница: ХХХ |
||||||
|
|
параметров |
серый |
|
АТРИБУТЫ ТЕКСТА: ХХХ |
|||||
|
|
текста |
Цвет фона: |
цвет текста - серый: ХХ; |
||||||
|
|
|
светло-синий |
цвет фона - светло-синий: ХХ. |
|
© Буров И.П., 2010 |
12 |
2)сохранить проект консольного приложения в персональной рабочей папке на сервере;
3)подготовить отчет по результатам выполнения лабораторной работы и ответить на контрольные вопросы.
2.2.Технология работы
1)перед первым запуском интегрированной среды разработки Turbo Delphi после входа в систему с личной учетной записью скопируйте файл регистрации reg736.txt из комплекта дистрибутива Turbo Delphi в папку
С:\Documents and Settings\<Имя пользователя>;
2)произведите загрузку Turbo Delphi;
3)создайте шаблон нового консольного приложения;
4)определите переменные для хранения номера кодовой страницы, цвета текста, цвета фона, атрибутов текста, дескриптора консоли и включите их в
раздел Var шаблона консольного приложения (см. приложение 1), размещенного на странице Project1 редактора кода;
5)в соответствии с заданием определите заголовок окна консольного приложения, указав модуль Windows в разделе uses шаблона главной процедуры консольного приложения и включив вызов API-функции SetConsoleTitle в исходный код программы;
6)включите вызов API-функции GetConsoleOutputCP в исходный код программы для определения используемого в консоли номера кодовой страницы;
7)включите вызов API-функции GetStdHandle для определения используемого в приложении дескриптора консоли;
8)в соответствии с заданием определите комбинацию элементарных цветовых атрибутов (см. приложение 2) и вставьте в исходный код программы соответствующие операторы присваивания;
9)включите вызов API-функции SetConsoleTextAttribute для установки атрибутов текста последующих операций вывода информации на консоль;
10)с помощью операторов процедур вывода реализуйте в программе вывод на консоль определенной заданием информации, в том числе полученных значений номера кодовой страницы и атрибутов текста;
11)выполните компиляцию программы, ее пробный запуск;
12)при необходимости проведите отладку программы, исправив ошибки;
13)сохраните проект консольного приложения в персональной рабочей папке на сервере, присвоив ему имя, определенное в задании;
14)подготовьте отчет с результатами лабораторной работы по образцу, рассмотренному в приложении 1, и приведите ответы на контрольные вопросы в тетради по лабораторному практикуму.
© Буров И.П., 2010 |
13 |
3.Контрольные вопросы
1)Что называют интегрированной программной средой для разработки приложений?
2)Какие окна располагаются на рабочем столе Turbo Delphi? Опишите их назначение.
3)Как в среде Turbo Delphi исправить ошибку, выявленную в процессе компиляции программы?
4)Какое приложение называют консольным?
5)Перечислите достоинства и недостатки консольных приложений.
6)Какие процедуры в консольных приложениях осуществляют операции вывода? Опишите порядок их применения.
7)Какие действия необходимо выполнить в среде Turbo Delphi для создания консольного приложения?
8)Как изменить заголовок окна в консольном приложении?
9)Опишите последовательность операций в консольном приложении для
смены цветовых атрибутов текста.
10) В чем заключается различие процессов исполнения команд Compile… и Run
в Turbo Delphi?
© Буров И.П., 2010 |
14 |
ПРИЛОЖЕНИЕ 1
Образец выполнения задания лабораторной работы № 3
1. Задание
Имя |
Заголовок |
Атрибуты |
|
|
прило- |
окна |
Выводимый текст |
||
текста |
||||
жения |
приложения |
|
||
|
|
|||
Console |
Параметры |
Цвет текста: |
Кодовая страница = ХХХ |
|
|
консоли |
светло-зеленый |
||
|
|
Цвет фона: |
АТРИБУТЫ ТЕКСТА: ХХХ |
|
|
|
синий |
||
|
|
цвет текста – светло-зеленый: ХХ; цвет фона – синий: ХХ. |
||
|
|
|
|
2. Исходный код
program Console; |
|
{$APPTYPE CONSOLE} |
|
uses |
|
SysUtils, |
|
Windows; |
|
Var |
|
Code_Page, |
{номер кодовой страницы национального алфавита} |
Text_Color, |
{цвет текста} |
Back_Color, |
{цвет фона} |
Text_Attr:Integer; |
{атрибуты текста} |
Console_Handle:Cardinal; {дескриптор консоли} begin
SetConsoleTitle('Параметры консоли'); Code_Page := GetConsoleOutputCP; Writeln;
WriteLn(' Кодовая страница = ', Code_Page : 3); Writeln;
Console_Handle := GetStdHandle(STD_OUTPUT_HANDLE);{определить дескриптор консоли} Text_Color := FOREGROUND_GREEN or FOREGROUND_INTENSITY;{определить цвет текста как
|
светло-зеленый} |
Back_Color := BACKGROUND_BLUE; |
{определить цвет фона как синий} |
Text_Attr := Text_Color or Back_Color; |
{определить атрибуты текста} |
SetConsoleTextAttribute(Console_Handle,Text_Attr);{установить атрибуты текста}
Write(' |
АТРИБУТЫ ТЕКСТА: ', Text_Attr : 3); |
Writeln(' |
'); |
Write(' цвет текста - светло-зеленый: ', Text_Color : 2, ';'); Writeln(' цвет фона - синий: ', Back_Color : 2, '.');
ReadLn;
end.
3. Результаты
© Буров И.П., 2010 |
15 |
ПРИЛОЖЕНИЕ 2
Элементарные цветовые атрибуты текста
Атрибут |
Значение |
|
|
FOREGROUND_BLUE |
Цвет текста – синий |
|
|
FOREGROUND_GREEN |
Цвет текста – зеленый |
|
|
FOREGROUND_RED |
Цвет текста – красный |
|
|
FOREGROUND_INTENSITY |
Цвет текста – светлый (серый) |
|
|
BACKGROUND_BLUE |
Цвет фона – синий |
|
|
BACKGROUND_GREEN |
Цвет фона – зеленый |
|
|
BACKGROUND_RED |
Цвет фона – красный |
|
|
BACKGROUND_INTENSITY |
Цвет фона – светлый (серый) |
|
|
© Буров И.П., 2010 |
16 |