Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vvedenie_F90_Interface.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
324.22 Кб
Скачать

Разработка главной программы:

В главной программе подготавливаем диалоговое окно и отображаем его на экране. Для создания файла с главное (любой) программой выполним следующие действия:

Project-> Add to Project -> New -> Fortran Free Format Source File

В окне Name укажем имя файла с главной программой. Обычно, имя файла с главной программой совпадает с именем проекта. Ниже приводится текст главной программы для нашего проекта. Проверьте, чтобы этот файл попал в проект. Для этого должно быть прочекено окно Add To Project.

Программа 3.

  1. program main

  2. use dflogm

  3. implicit none

  4. include "resource.fd"

  5. integer res

  6. logical tf

  7. external onOK, onCancel

  8. type(dialog) dlg

  9. tf = DlgInit(IDD_DIALOG1, dlg)

  10. tf = DlgSetSub(dlg, IDOK, onOK)

  11. tf = DlgSetTitle(dlg, "АРИФМОМЕТЕР")

  12. tf = DlgSetSub(dlg, IDCancel, onCancel)

  13. res = DlgModal(dlg)

  14. End

Строка №2 подключает модуль, содержащий интерфейсы процедур для работы с диалогами. Можно использовать другое имя модуля: use dialogm

Строка №4 включает заголовочный файл с символическими именами ресурсов. В строке №9 используется константа IDD_DIALOG1, а не число 101. Убеждать, что символические константы гораздо лучше буквальных в этом контексте нет необходимости.

В строке №5 объявлена переменная res. Она используется в строке 12 и указывает, с каким кодом завершения закроется наше диалоговое окно. В нашем случае мы ее не используем, но при нескольких диалоговых окнах следующий диалог может определяться результатами работа предыдущего.

Логическая переменная tf (имя выбрано как акроним слов true & false). Большинство диалоговых процедур возвращают true / false в зависимости от успешности ее работы.

Если Вы сомневаетесь в успешности выполнения диалоговой процедуры, проверяйте значения tf после исполнения подозреваемой процедуры.

Строка №7 объявляет имена двух процедур отклика на события click OK и click Cancel.

Строка №8 объявляет переменную производного (derive) типа dlg. Эта переменная в дальнейшем получит (будет инициализирована) все данные нашего окна диалога, и произойдет это в следующей строке.

В строке №9 выполняется инициализация переменной. Диалог представляет собой контейнер, в котором располагаются стандартные элементы управления. С его идентификатором IDD_DIALOG1 связана исчерпывающая информация о всех компонентах окна. Инициализация переменной dlg означает, что вся эта информация о диадоге становится доступной программе через эту переменную. Понятно, что память для этой переменной велика. Поэтому после использования текущего диалога эту переменную можно освободить для дальнейшего использования. Так рекомендуется поступать в документации Fortran, но для современной техники такая позиция выглядит не очень убедительно.

В строках №10 и№11 производится подписка на события Click кнопок OK и Cancel. Обратите внимание на названия процедур. Так процедура инициализации названа DlgInit, что является аббревиатурой Dialog Initialization, а DlgSetSub это Dialog Set Subroutine. Из названия вытекает семантика процедуры. Это является хорошим тонов, и следует брать пример с разработчиков библиотек Fortran’а.

В строке №12 определяем имя диалогового окна.

Строка №13 выводит на экран модальное окно нашего диалога. Модальные окна не позволяют передавать фокус другим окнам, пока не будет закрыто. Передать управление в другое окно становится возможным только после закрытия модального окна. Примером модального окна является интерфейс Блокнота(NotePad), а немодального – интерфейс WORD’а. Диалоговое окно будет располагаться на экране до тех пор, пока одна их программ не закроет наш диалог. Код закрытия диалога используется для дальнейшего ветвления программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]