关于程序连编完成后,再进一步做成运用程序发布的问题
这是在论坛上找到的一个流程。制作安装盘的步骤如下:
1、启动VFP6.0,选“工具”菜单栏的“向导”,选“安装”,启动安装向导。
2、第一步:定位文件。指定发布树目录,即输入欲制作安装盘的程序文件所在目录,击“下一步”。
3、第二步:指定组件。这是很关键的一步,必须选中“Visual Foxpro运行时刻组件”,它包含了VFP执行程序所必需的.DLL动态连接库,使得应用程序可以脱离VFP环境独立运行。此外,若您的程序添加了AxtiveX控件,则必须选中“AxtiveX控件”,在弹出的窗口中选定程序中要用到的OCX控件。同样的,若程序中包含Microsoft Graph图表或ODBC数据库、HTML帮助文档,则必须选中对应条目的复选框,击“下一步”。
4、第三步:磁盘映像。选定安装程序制作好后需存放在哪个目录下,如输入“C:\\SETUP”,则安装盘制作好后将存放在c:\\setup目录下。同时选定映像方式为“1.44M软盘”、“WEB安装”和“网络安装”中的一种或几种。
5、第四步:安装选项。输入安装对话框标题及版权信息,执行程序一栏可不填,击“下一步”。
6、第五步:默认目标目录。在“默认目标目录”栏中填入安装时默认安装到哪个目录下,在“程序组”中填入安装后生成的程序组名字,如“**管理系统”。“用户可以修改”请选中“目录与程序组”,这样用户在安装时可以修改安装目录以及程序组名字,击“下一步”。
7、第六步:改变文件路径。这一步也很重要,为了要在安装程序运行后,在“开始”菜单栏生成程序组,你必须选中编译好的主程序一行,选中该行“程序管理器”前的复选框(注意:生成程序组的文件必须是可执行文件),弹出对话框,在“说明”一栏输入程序组名称,单击”图标“按钮为程序组选定图标,同时在命令行一栏输入“%s+可执行文件名”,若你的可执行程序名为xt.exe,则输入“%sxt.exe”,%s是为了保证程序在安装时改变了目录也能正常运行,单击“确定”,击“下一步”。
8、第七步:完成。单击“完成”按钮,生成安装磁盘,同时也可选择“创建从属文件”以便为安装程序创建从属文件。安装生成后,您可发现在指定的磁盘映像目录下有一个DISK!44目录,该目录下存放了安装程序,单击disk1目录下的setup.exe文件即可安装,由于安装程序包含了vfp程序运行支持库,可以完全脱离VFP环境独立运行。
需要注意的是:
1).在打包VFP程序生成安装盘的时候常常会出现CAB压缩错误提示,这时要看看你打包时是否关掉了程序中的项目管理器,如果没有关掉,系统在压缩程序时无法压缩正在使用的项目文件信息,所以出现压缩错误提示。因此制作安装盘时必须关闭所有的项目文件。
2).在编译生成可执行程序后或生成安装盘重新安装运行时,程序主画面闪一下后就退出了,用户无法进行控制操作,这时要看看在你的主程序的末尾是否加上了READ EVENTS 语句,以使程序暂停运行等待用户响应。
3).程序打包后,安装运行时无法脱离VFP主窗口环境。这时你可以自己编辑一个CONFIG.FPW系统配置文件对生成的程序进行运行环境等各方面的设定。具体方法如下:
在应用程序中打开项目管理器,在代码一栏内新建一程序其代码如下:
screen=off
sysmenu=off
然后存为一个名叫CONFIG的文件,这时系统默认的扩展名为:PRG,保存好文件后退出。在刚才保存的位置找到刚才存好的CONFIG .PRG文件,将其重命名为CONFIG.FPW然后重新进入项目管理器,在代码栏内选中该文件,单击右键选择“排除”一项,这样系统在编译的时候就不将其编译在内而将它视为系统文件,这样你的程序一运行就先自动搜索当前路径或默认路径下是否存在该系统配置文件,如存在就执行进入系统配置。
4).在程序表单中设计退出按钮时为保险起见要加语句:CLEAR EVENTS 来结束用户操作,使程序安全退出。
5).制作VFP6.0安装程序,使其运行安装结束后在“开始”菜单上建立程序组
如果在向导的第6步中没有指定程序管理器项,就应该将.exe文件指定为程序管理器项,单击该文件所在行的程序管理器项中的check按钮,在弹出的窗口中输入说明和命令行,命令行输入:%s\\xxx.exe,xxx.exe为您的.exe文件名,%s是为了保证程序在安装时改变了目录也能正常运行,另还可选择图标。
5)有时编译完的exe文件运行时主表单一闪而过?
请注意:假如你的主表单或表单集为zhubd.scx
可建立主程序xt.exe:
set talk off
_screen.visible=.f.
_screen.title="**管理系统"
do form zhubd,scx
read events
注意:read events一句必须加在运行表单的后面,且在主表单zhubd.scx的unload事件中编写代码:clear events
这样编译成exe文件后,由于do form 一句执行完后立即执行下面的语句,若无read events一句,表单无法执行事件而一闪而过