Главный программный файл main.prg 


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



ЗНАЕТЕ ЛИ ВЫ?

Главный программный файл main.prg



Главный программный файл предназначен для запуска и работы всей программы. В скомпилированной программе запускается самым первым. В среде VFP для запуска программы должна быть выполнена команда DO main

 

IF JUSTEXT(SYS(16))<>'EXE' && Если это не программа ЕХЕ

SET RESOURCE ON && включить использование файла ресурсов

ENDIF

SET TALK OFF && запретить вывод промежуточных результатов

SET ESCAPE OFF && запретить системную реакцию на клавишу Esc

SET SAFETY OFF && при командах удаления отключить дополнительный запрос на выполнение

SET NEAR ON && при не удачном поиске останавливаться на ближайшей записи

SET DELETED ON && отключить работу с записями помеченными на удаление

SET EXCLUSIVE OFF && отключить монопольное использование таблиц

_SCREEN.windowstate = 2 && установить режим окна в развернутый на весь экран

_SCREEN.backcolor = RGB(0, 192, 192) && установить цвет фона окна

_SCREEN.caption = 'Зоопарк' && установить заголовок окна

_SCREEN.icon = 'Fox8.ico' && установить иконку окна

 

&& Объявить API функции для создания и проверки события

DECLARE INTEGER CreateEvent IN WIN32api INTEGER, INTEGER, INTEGER, STRING @

DECLARE INTEGER OpenEvent IN WIN32api INTEGER, INTEGER, STRING @

cprog = JUSTFNAME(SYS(16)) && имя запускаемой программы

 

&& если программа с этим именем уже запущена

IF openevent(1, 0, cprog)<>0 AND JUSTEXT(SYS(16))='EXE'
DO FORM alredyrun && вывести окно предупреждения

READ EVENTS && ждать, пока окно на экране

RETURN && вернуться с программы

ENDIF

createevent(0, 0, 0, cprog) && создать событие - запуск программы с ее именем

 

PUBLIC loconn AS OBJECT, loCmd as ADODB.Command && объявить глобальные переменные

loconn =.F. && первоначальное значение канала подключения

 

ON SHUTDOWN DO vihod IN main && при аварийном закрытии программы выполнить процедуру выхода

 

&& Объявить API функцию для вывода окна поверх других окон

DECLARE SetForegroundWindow IN WIN32API LONG

 

&& Объявить API функции для чтения и записи INI-файлов

DECLARE Integer GetPrivateProfileString IN Win32API AS ReadIni;

String cSection,; && Имя раздела

String cKey,; && Имя реквизита

String cDefault,; && Значение по умолчанию, если нет указанного раздела или реквизита

String @cBuffer,; && Собственно считанное значение реквизита

Integer nBufferSize,; && Максимальное количество символов в считанном реквизите

String posfile && имя ini-файла с полным путем доступа

DECLARE Integer WritePrivateProfileString In Win32API As WriteIni;

String cSection,; && имя раздела

String cKey,; && имя реквизита

String cValue,; && значение реквизита

String posfile && имя ini-файла с полным путем доступа

 

DO FORM autoriz && запустить форму для запроса на подключение

READ EVENTS && ждать пока форма открыта

IF TYPE('loConn')<>'O' && если канал подключения не объект

DO vihod IN main && выполнить процедуру закрытия программы

ENDIF

 

loCmd=CREATEOBJECT('ADODB.command') && создать объект ADODB.command

loCmd.ActiveConnection=loConn && настроить этот объект на канал подключения

SET CLASSLIB TO classes && подключить библиотеки классов

DO mainmenu && выполнить процедуру создания меню программы

READ EVENTS && объявить начало события

SET SYSMENU TO DEFAULT && вернуть меню в стандартное меню VFP

 

*********************************************

PROCEDURE vihod && процедура выхода из программы

FOR i = 1 TO _VFP.forms.count && пройтись по всем открытым окнам

_VFP.forms(1).release && закрыть каждое окно

ENDFOR

CLEAR EVENTS && очистить объявленное событие

SET SYSMENU TO DEFAULT && вернуть меню в первоначальный вид

ON SHUTDOWN && отключить выполнение действий при аварийном завершении

CANCEL && прекратить выполнение программы

********************************************

PROCEDURE do_form && процедура запуска форм

PARAMETER form_name && входящий параметр - имя формы

IF WEXIST(form_name) && если такая форма уже открыта

ACTIVATE WINDOW (form_name) && сделать ее активной

ELSE && иначе

DO FORM (form_name) && запустить форму на выполнение

ENDIF

****************************************************

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 106; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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