- •Тема 3.1. Модуль Graph. Графічний режим.
- •1. Перемикання екрана в графічний режим.
- •2. 3Акінчення роботи в графічному режимі.
- •3. Робота в графічному режимі.
- •4. Графічні режими.
- •5. Кольори та палітри.
- •6. Переміщення поточного вказівника та малювання точки.
- •7. Малювання ліній.
- •8. Малювання геометричних фігур.
- •9. Виведення тексту в графічному режимі.
- •10. Аналіз програм з елементами графіки, звукових сигналів.
5. Кольори та палітри.
У модулі Graph оголошено наступні константи для позначення кольорів:
Black = 0; {чорний}
Вluе = 1; {синій}
Grееn = 2; { зелений }
Cyan = 3; {смарагдовий}
Red = 4; {червоний}
Magenta = 5; {малиновий}
Brown = 6; {коричневий}
LightGray = 7; {світло-сірий}
DarkGray = 8; { темно-сірий}
LightBlue = 9; {світло-блакитний}
LightGreen = 10; {ясно-зелений}
LightCyan = 11; {світло-смарагдовий}
LightRed = 12; {ясно-червоний}
LightMagenta = 13; {світло-малиновий}
Yellow = 14; {жовтий}
White = 15; {білий}
Для гнучкості роботи з кольорами вони об'єднуються в палітри.
Палітра - це структура даних, тип якої описаний наступним чином:
const MaxColors = 15;
type
PaletteType = record
Size: byte;
Colors : array[0..MaxColors] of shortint;
end.
Один з кольорів палітри є поточним кольором (за замовчуванням білий). Цим кольором процедури модуля Graph малюють лінії та геометричні фігури. Інший колір є поточним кольором фону (за замовчуванням - чорний). Палітри зручні для забезпечення швидкої зміни кольорів. Поточний колір вибирається з палітри процедурою SetColor, поточний колір фону процедурою GetВkColor шляхом вказання номера елемента масиву Colors, який містить код цього кольору. При будь-якій зміні кольору палітри всі місця на екрані, де цей колір використовується, будуть відразу змінені відповідно до нового значення кольору.
Процедура SetColor(Color : word). Встановлює поточний колір. Color - номер елемента масиву Colors, який містить значення активного кольору. SetColor(0) задає використання першого кольору палітри як поточного кольору. Параметр Color може приймати значення в діапазоні від 0 до 15, в залежності від використовуваного графічного драйвера і графічного режиму.
Процедура SetBkColor(Color : word). Встановлює поточний колір фону. Color - номер елемента масиву Colors, який містить значення поточного кольору фону.
Функція GetPaletteSize : word. Повертає кількість кольорів у палітрі для поточного графічного режиму.
Процедура SetAllPalette(var Р). Змінює всі кольори палітри на задані параметром Р. Параметр Р в описі процедури оголошений нетипізованим параметром. Перший його байт містить довжину палітри. Наступні n байтів кольори, які замінять поточні кольори палітри. Кожен колір може приймати значення від -1 до 15. Значення -1 не змінює попереднє значення запису. Припустимі кольори залежать від поточного графічного драйвера і поточного графічного режиму. Зміни, внесені в палітру, негайно висвітлюються на екрані. При будь-якій зміні кольору палітри всі місця на екрані, де цей колір використовується, будуть змінені відповідно до нового значення. Для параметру Р можна використовувати змінну, що має тип PaletteType, описаний вище.
Процедура GetPalette(var Р : PaletteType). У змінну Р типу PaletteType записує поточну палітру і її розмір.
Процедура SetPalette(n : word; Color : byte). Змінює в палітрі колір, який міститься в n-му елементі масиву Colors (див. опис типу PaletteType) на значення Color. SetPalette(0, Уellow) або SetPalette(0, 14) встановлює значення 14 (жовтий) першим кольором палітри. В залежності від поточного графічного драйвера і поточного графічного режиму параметр n може приймати значення від 0 до 15. Внесені у палітру зміни негайно висвітлюються на екрані.
