Відображення числової інформації 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Відображення числової інформації



звичайно для недосвідчених користувачів відображення числової інформації на екрані представляє деякі трудності, так як в модулі Graph немає призначених для цього процедур. З цього положення можна вийти наступним чином: спочатку перетворити число в рядок за допомогою процедури Str, а потім за допомогою операцій конкатенації (+)об’єднати її з відображеною функцією OutTextXY рядком.

УПРАВЛІННЯ ПАРАМЕТРАМИ ЗОБРАЖЕННЯ

Встановлення кольору

Для різних типів адаптерів кількість кольорів, одночасно відображених на екрані в графічному режимі, може бути різною. Але для всіх BGI-драйверів вона обмежена діапазоном цілочислових значень від 0 до 15.

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

GetMaxColor: WORD;

Для встановлення кольору і фону в мові Turbo Pascal застосовуються процедури SetColor і SetBkColor. Процедура

SetColor (Color: WORD);

Слугує для задання кольору, який буде використовуватися процедурами графічного виводу. Номер кольору вказується параметром Color. По замовчуванню для зображення використовується колір з максимальним номером, а для фону – з мінімальним. Якщо в якості Color вказаний недоступний номер кольору, поточний колір не змінюється. Процедура

SetBkColor (Color: WORD);

Встановлює новий колір фону, який визначається значенням Color.

Отримати значення поточних установок кольору можна за допомогою двох спеціальних функцій. Функція

GetColor: WORD;

Повертає значення поточного кольору зображення, а функція

GetBkColor: WORD;

Поточний колір фону.

Встановлення палітри

Палітрою називається максимальна набір кольорів, які підтримує BGI-драйвер. Вона включає 16 кольорів, пронумерованих від 0 до 15, які використовуються по замовчуванню в режимі 320х200 для EGA як в текстовому, так і в графічному режимах.

Отримати інформацію про поточну палітру можна за допомогою процедури

GetDefaultPalette (VAR Palette: PaletteType);

Де Palette – змінна типу PaletteType.

ТЕМА: МОДУЛЬ DOS

Модуль Dos містить ряд підпрограм для роботи з файлами і доступ до засобів операційної системи. Не одна з програм модуля Dos не визначена в стандартному Pascal, тому вони поміщені в окремий модуль.

Щоб використовувати підпрограми, які знаходяться в модулі Dos, його ім'я необхідно вказати в операторі USES на початку програми:

USES Dos;

Процедури і функції модуля Dos можна уявно розбити на наступні групи:

ü Функції управління операційним середовищем.

ü Процедури управління процесами.

ü Процедури обслуговування переривань.

ü Процедури роботи з датою і часом.

ü Процедури і функції перевірки стану диску.

ü Процедури і функції роботи з файлами.

ü Процедури і функції різного призначення.

ФУНКЦІЇ УПРАВЛІННЯ ОПЕРАЦІЙНИМ СЕРЕДОВИЩЕМ

Програма, написана на мові Pascal 7.0 має можливість отримувати від MS-DOS інформацію про оточення (environment). Дані про оточення зберігаються в визначеній області операційної системи і представляють собою набір текстових рядків, в яких описані змінні оточення. Значення одних змінних встановлюється системою по замовчуванню, значення інших задаються користувачем чи прикладною програмою. Кожний опис в області оточення представляє собою рядок виду:

Ім'я = Значення

Ім'я – це ім'я змінної, Значення – текстовий рядок.

Змінні оточення призначені для зберігання визначеної системної інформації, яка необхідна різним прикладним програмам, які використовують її в своїх цілях. Довжина текстового рядка, який визначає змінну оточення, не може перевищувати 128 байт.

Для того щоб встановити змінну оточення, використовується команда операційної системи SET, наприклад:

SET COMSPEC=C:\DOS\COMMAND.COM;

Якщо вказати команду SET без аргументу, то на екрані буде виданий список змінних оточення. В Turbo Pascal міститься три функції для роботи з змінними оточення:

FUNCTION EnvCount: INTEGER;

FUNCTION EnvStr (index: INTEGER): STRING;

FUNCTION GetEnv (EnvVar: STRING): STRING;

Функція EnvCount не має параметрів і повертає загальне число змінних оточення. Функція EnvStr має один параметр і повертає рядок, який містить ім'я і значення змінної, яка відповідає значенню вказаного індексу. Індекс найпершої змінної – 1. якщо вказаний індекс менше 1 чи більше EnvCount, функція EnvStr повертає пустий рядок.

Функція GetEnv дозволяє по імені змінної оточення отримати її значення. При виклику функції вказується один параметр – ім'я змінної оточення.

ПРОЦЕДУРИ УПРАВЛІННЯ ПРОЦЕСАМИ

Використовуючи спеціальні засоби мови Pascal, можна організувати виклик з програми будь-якої іншої програми, яку називають програмою-нащадком. Важливо пам’ятати, що для того, щоб програма-нащадок успішно завантажилася в пам'ять і почала виконуватися, необхідно забезпечити виділення їй потрібного об’єму пам'яті. Так як програма, яка виконується в даний момент, по замовчуванню захоплює всю вільну динамічну пам'ять (кучу) системи, то для завантаження програми-нащадка просто немає місця. Для того щоб виділити для програми-нащадка достатньої кількості вільної пам'яті, необхідно на початку програми вказати за допомогою директиви компілятора $M мінімальний розмір виділеної програмі пам'яті, а якщо в програмі не використовується динамічна пам'ять, то зовсім не виділяти її.

Виклик програми-нащадка відбувається за допомогою процедури

Exec (Path, CmLine: STRING);

Параметр Path – це повний чи скорочений шлях до командного файлу і його ім'я, а CmLine – параметр, в якому можна передати викликаній програмі командний рядок. Якщо виклик програми не відбувся, то це ніяк не відіб’ється на роботі викликаної програми, тобто вона буде вести себе однаково як при успішному, так і при неуспішному виклику. Для того щоб визначити, як пройшов виклик, використовується системна змінна DosError, яка описана в модулі Dos. Зразу після виклику процедури Exec необхідно перевірити значення змінної DosError. Якщо вона рівна 0, то це означає, що виклик пройшов успішно. Не нулеві значення свідчать про помилку. Значення цієї змінної відповідає кодам, виробленими операційною системою, і можуть бути наступними

код помилки Значення
  нормальне завершення
  файл не знайдений
  шлях не знайдений
  надто багато відкритих файлів
  доступ закритий
  порушена інформація в полях файлу чи в системних областях
  недостатньо пам'яті
  несумісні параметри оточення
  нерозпізнаний формат диску
  немає більше файлів

Коли викликається програма нащадок, бажано, щоб ця програма виконувалася в оточенні DOS, що відповідає тому оточенні, яке забезпечує операційна система. Однак програма, написана на Турбо Паскалі, звичайно не виконує ці умови. При запуску вона завжди перевизначає деякі переривання для особистих цілей. Тому перед викликом програми нащадка потрібно відновити початкову адресу обробника переривань, а після завершення роботи викликаної програми встановити адресу об робітника Турбо Паскаля. Ці дії виконує процедура Swap Vectors, яка не має параметрів.

Використовуючи механізм виклику незалежних програм, можна створити складні програмні комплекси, в яких програма-диспечер, займає чи не великий об’єм пам'яті, проводить виклик необхідних (в тому числі і системних) програм. В такому випадку може виникнути необхідність передачі інформації з програми-нащадка у викликаючи програму чи навпаки. Нажаль, можливості MS-DOS по здійсненню таких обмінів невеликі. Якщо програма що викликається, написана на мові Турбо Паскаль, то доступ до командного рядка здійснюється за допомогою функцій ParamStr і ParamCount.

Стандартним способом передачі інформації в програму, що викликається, являється процедура HALT, яка має один параметр і через нього передає код завершення, який, в свою чергу, може бути використаним в програмі, що викликається, за допомогою функції

DosExitCode: WORD;

Ця функція повертає значення типу WORD, в молодшому байті якого міститься код повернення, переданий через процедуру завершення, а в старшому – ознака того, як завершилася програма.



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 229; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.205.146 (0.006 с.)