ПРИЛОЖЕНИЕ А. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ГРАФОРА В СИСТЕМЕ 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 (и, естественно, файлы в других графических форматах) могут быть вставлены в документ при работе в текстовом редакторе WORD выполнением команд Insert ® Picture.