ПРИЛОЖЕНИЕ А. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ГРАФОРА В СИСТЕМЕ WINDOWS95/98/NT.


Работа с проектом

Замечания по поводу параметров программы ENDPG и программ, использующих текстовые константы

Многооконный вывод

Установка размеров графических окон

Вывод текстовой информации

Получение “твердых” копий

Использование буфера обмена

Использование HP - GL


Работа с проектом.

Для работы требуется наличие транслятора Microsoft Fortran PowerStation 4.0 (FPS) (установленного в Windowsâ95/98/NT) и файла GRAFOR.OBJ (который может находиться в произвольной директории на жёстком диске). Описание транслятора и приёмов работы в оболочке Microsoft Developer Studio (помимо встроенной системы помощи) можно найти в литературе [19], [20], [21], [22]. Вначале следует создать новый проект типа QuickWin. Затем в проект необходимо вставить (Insert®Files_into_Project) файл GRAFOR.OBJ и пользовательские Фортран-файлы. Дальнейшая сборка и запуск не отличаются от обычных.

 

Замечания по поводу параметров программы ENDPG и программ, использующих текстовые константы.

Обратим внимание на следующие моменты. Параметр подпрограммы ENDPG (осуществляющей закрытие страницы), обязательно должен быть нулем. Параметры же подпрограмм, использующих текстовые константы, и относящиеся к ним (а именно сами эти константы и их длины) не должны быть нулями. Если, например, нет необходимости писать название области, достаточно задать его равным пробелу (при этом длина этой текстовой переменной задается равной единице).

 

Многооконный вывод.

В одной программе может быть открыто (с соблюдением соответствующего порядка закрытия страниц) до 38 графических окон. В случае использования стандартных операторов ввода-вывода открывается обычное текстовое окно. Необходимо отметить, что русский язык в таком окне не поддерживается, и тогда для организации диалога следует использовать соответствующие встроенные средства FPS. В операторах OPEN не следует использовать номера устройств (UNIT =), большие чем 100. Каждое окно обозначается порядковым номером и именем, задаваемым в подпрограмме  PAGE, и закрывается оператором ENDPG(0). Программы GRINIT иGRFIN не используются.

 

Установка размеров графических окон.

Задание размеров графических окон осуществляется вызовом подпрограммы GF_SETNP. Ее параметры (NPX,NPY) означают количество пикселей по координатам X и Y соответственно. Затем, если необходимо, производится изменение размеров окна в пикселях пропорционально соотношению его размеров в сантиметрах, задаваемых в подпрограмме PAGE. Если обращения к подпрограмме GF_SETNP не было, по умолчанию (до масштабирования соответственно параметрам в PAGE) полагается NPX = 640, NPY = 480.

 

Вывод текстовой информации.

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

Ю 1 2 3 4 5 6 7 8 9 0 - =
Ч !   # $ % Ù & * ( ) _ +
Я В Е Р Т Ы У И О П [ ]  
Q W E R T Y U I O P Ш Щ  
А С Д Ф Г Х Й К Л ;   А
A S D F G H J K L :    
З Ь Ц Ж Б Н М , . / \    
Z X C V B N M < > ? э    

Аналогичный рисунок получается посредством следующей программы:

     call PAGE(8.0,8.0,'Буквы',5,1)
     call symbol(0.1, 7.05, 0.9, '`1234567890-=' , 13, 0.0)
     call slinst(0)
     call move(0.0,7.1,0)
     call move(8.0,7.1,1)
     call slinst(-1)
     call symbol(0.1, 6.05, 0.9, '~!@#$%^&*()_+' , 13, 0.0)
     call move(0.0,6.1,0)
     call move(8.0,6.1,1)
     call symbol(0.1, 5.05, 0.9, 'qwertyuiop[]' , 12, 0.0)
     call slinst(0)
     call move(0.0,5.1,0)
     call move(8.0,5.1,1)
     call slinst(-1)
     call symbol(0.1, 4.05, 0.9, 'QWERTYUIOP{}' , 12, 0.0)
     call move(0.0,4.1,0)
     call move(8.0,4.1,1)
     call symbol(0.1, 3.05, 0.9, 'asdfghjkl;''' , 12, 0.0)
     call slinst(0)
     call move(0.0,3.1,0)
     call move(8.0,3.1,1)
     call slinst(-1)
     call symbol(0.1, 2.05, 0.9, 'ASDFGHJKL:'' , 11, 0.0)
     call move(0.0,2.1,0)
     call move(8.0,2.1,1)
     call symbol(0.1, 1.05, 0.9, 'zxcvbnm,./\' , 11, 0.0)
     call slinst(0)
     call move(0.0,1.1,0)
     call move(8.0,1.1,1)
     call slinst(-1)
     call symbol(0.1, 0.05, 0.9, 'ZXCVBNM<>?|' , 11, 0.0)
     call endPG(0)
     END

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

 

Получение "твердых" копий.

Использование буфера обмена.

Полученные изображения могут быть переданы в буфер обмена. Для этого необходимо выделить нужное окно и выполнить действия Edit ® SelectAll ® Edit ® Copy. Затем в каком либо графическом редакторе следует вызвать пункт меню Edit и выбрать в нем команду Paste. Далее осуществляется вывод на принтер, установленный в Windows (File ® Print). Изображение может быть сохранено в виде файла в каком либо графическом формате.

Использование HP-GL.

При работе программы в директории проекта создаются соответствующие каждому окну файлы, содержащие операторы языка Hewlett Packard Graphic Language (HP-GL). Они имеют имена вида <№ окна>.HGL (т.е. 1.HGL, 2.HGL…). Язык HP-GL использует только коды ASCII, поэтому данные текстовые файлы могут использоваться для передачи графических результатов в другие ОС.

Вывод на графопостроитель, подключенный к ПК, осуществляется в ДОС-окне командой "COPY <ИмяФайла> COM[№]" ( обозначает номер последовательного порта, к которому подключен плоттер). Заметим, что до этого должен быть установлен режим, соответствующий установкам плоттера, например "mode com4 9600,n,8,1,p".

Количество перьев у разных моделей графопостроителей варьируется. Настоящая версия ориентируется на использование 6 цветов. Распределение их при выводе на экран (цвета плоттера определяются установкой фломастеров в карусели) следующее:

1   -   черный,
2   -   красный,
3   -   зеленый,
4   -   синий,
5   -   фиолетовый,
6   -   серый.
Нулевое значение означает белый цвет при выводе на экран и эквивалентно вызову SETPEN(1) для графопостроителя. Это связано с тем, что подпрограммой SETBGR может быть установлен цвет фона на дисплее (на выводе в файл HGL работа этой подпрограммы никак не сказывается), отличный от белого, и тогда белая линия на этом фоне будет видна.

Файлы с расширением HGL (и, естественно, файлы в других графических форматах) могут быть вставлены в документ при работе в текстовом редакторе MS Word выполнением команд Insert ® Picture.