Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №03_

.pdf
Скачиваний:
15
Добавлен:
28.03.2015
Размер:
1.29 Mб
Скачать

Text_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