2.如何编写主程序

2

如何编写主程序

难度系数 êêê

人气指数 95%

问题详述

程序编译以后为什么会一闪而过?主程序应该如何编写?

专家解答

主程序作为所编写程序的一个入口,其首先一个作用就是要设置程序的运行环境、定义变量、常量,然后进行其他的一些调用,如:设计菜单或登录画面等。下面的这个程序段给出了一个主程序设计的示例。

**设置运行环境

SET TALK OFF &&关闭命令显示

SET ESCAPE OFF &&禁止运行的程序在按 Esc 键后被中断

SET EXCLUSIVE OFF &&允许网络上的任何用户共享和修改网络上打开的表

SET HELP ON &&当按下 F1 键或在命令窗口中执行 HELP 命令时,显示帮助窗口

SET HELP TO Comp_Help.CHM &&指定帮助文件

SET CONSOLE ON &&将所有的结果输出到Visual FoxPro主窗口或活动的用户自定义窗口中

SET DATE ANSI &&指定日期表达式的显示格式为yy.mm.dd

SET CENTURY ON &&设定日期中的年为4位数

SET SAFETY OFF &&指定在改写已有文件时不显示对话框

SET STATUS BAR ON &&打开Visual FoxPro状态栏

SET COLOR TO &&设置颜色为默认状态

SET SYSMENU OFF &&关闭系统菜单

SET MESSAGE TO "" &&指定在Visual FoxPro状态栏中显示的内容

CLEAR &&清除主窗口

CLEAR ALL &&清除变量

ON ERROR DO Err.PRG ;

WITH ERROR(), ;

MESSAGE(), ;

MESSAGE(1), ;

PROGRAM(), ;

LINENO(1) &&指定当出现错误时执行的命令

ON SHUTDOWN DO QuitAll.PRG &&指定退出Visual FoxPro时要执行的命令

****开始进行程序的事务处理操作

DO FORM Begin &&运行版权画面表单Begin

READ EVENTS &&开始事务处理,第1READ EVENTS

DO FORM Login &&打开登录表单

READ EVENTS &&开始事务处理,第2READ EVENTS

WITH _Screen &&设置Visual FoxPro主表单为可见、最大化、标题、图标

.Visible=.T.

.Closable=.T.

.ControlBox=.T.

.MaxButton=.T.

.MinButton=.T.

.Movable=.T.

.Top=0

.Left=0

.WindowState=2

.Caption="专家库管理系统--操作员"+Nowuser

.Icon='MainFrm.ico'

ENDWITH

PUBLIC tz_gj,ryzl,xtzd,dy,bfhf,about &&定义表单名称全局变量

*开始定义主菜单,注意:在Visual FoxPro 7.0中支持在菜单项中加入图标

SET SYSMENU TO

SET SYSMENU AUTOMATIC

DEFINE PAD _0lw07no93 OF _MSYSMENU PROMPT "文件(\<F)" COLOR SCHEME 3 ;

KEY ALT+F, ""

DEFINE PAD _msm_edit OF _MSYSMENU PROMPT "编辑(\<E)" COLOR SCHEME 3 ;

KEY ALT+E, ""

DEFINE PAD _0lw07no95 OF _MSYSMENU PROMPT "查看(\<V)" COLOR SCHEME 3 ;

KEY ALT+V, ""

DEFINE PAD _0lw07no96 OF _MSYSMENU PROMPT "帮助(\<H)" COLOR SCHEME 3 ;

KEY ALT+H, ""

ON PAD _0lw07no93 OF _MSYSMENU ACTIVATE POPUP 文件f

ON PAD _msm_edit OF _MSYSMENU ACTIVATE POPUP _medit

ON PAD _0lw07no95 OF _MSYSMENU ACTIVATE POPUP 查看v

ON PAD _0lw07no96 OF _MSYSMENU ACTIVATE POPUP 帮助h

DEFINE POPUP 文件f MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF 文件f PROMPT "人员资料(\<M)" ;

KEY CTRL+M, "Ctrl+M" ;

PICTURE "zhj163.bmp" ;

MESSAGE "人员基本资料录入管理"

DEFINE BAR 2 OF 文件f PROMPT "系统字典(\<D)..." ;

PICTURE "zhj53.bmp" ;

MESSAGE "各种系统字典库管理"

DEFINE BAR 3 OF 文件f PROMPT "打印(\<P)..." ;

KEY CTRL+P, "Ctrl+P" ;

PICTURE "print3.bmp" ;

MESSAGE "打印各种人员资料报表"

DEFINE BAR 4 OF 文件f PROMPT "数据备份/恢复(\<R) " ;

PICTURE "disk3.bmp" ;

MESSAGE "备份/恢复人员数据资料"

DEFINE BAR 5 OF 文件f PROMPT "\-"

DEFINE BAR 6 OF 文件f PROMPT "关闭(\<E)" ;

KEY CTRL+E, "Ctrl+E" ;

PICTURE "zhj24.ico" ;

MESSAGE "关闭系统"

ON SELECTION BAR 1 OF 文件f do form ryzl name ryzl

ON SELECTION BAR 2 OF 文件f do form xtzd name xtzd

ON SELECTION BAR 3 OF 文件f do form dy name dy

ON SELECTION BAR 4 OF 文件f do form bfhf name bfhf

ON SELECTION BAR 6 OF 文件f quit

DEFINE POPUP _medit MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR _med_undo OF _medit PROMPT "撤消(\<U) ";

KEY CTRL+Z, "Ctrl+Z" ;

PICTURE "undo.bmp" ;

MESSAGE "撤消上一次命令或操作"

DEFINE BAR _med_redo OF _medit PROMPT "重作(\<D) ";

KEY CTRL+Z, "Ctrl+R" ;

PICTURE "redo.bmp" ;

MESSAGE "重复上一次命令或操作"

DEFINE BAR _med_sp100 OF _medit PROMPT "\-"

DEFINE BAR _med_cut OF _medit PROMPT "剪切(\<T) " ;

KEY CTRL+X, "Ctrl+X" ;

PICTURE "cut.bmp" ;

MESSAGE "移去选定内容并将其放入剪贴板"

DEFINE BAR _med_copy OF _medit PROMPT "复制(\<C) " ;

KEY CTRL+C, "Ctrl+C" ;

PICTURE "copy.bmp" ;

MESSAGE "将选定内容复制到剪贴板上"

DEFINE BAR _med_paste OF _medit PROMPT "粘贴(\<P) " ;

KEY CTRL+V, "Ctrl+V" ;

PICTURE "paste.bmp" ;

MESSAGE "粘贴剪贴板上的内容"

DEFINE BAR _med_clear OF _medit PROMPT "清除(\<A)" ;

MESSAGE "移去选定内容,并且不将其放到剪贴板上"

DEFINE BAR _med_sp200 OF _medit PROMPT "\-"

DEFINE BAR _med_slcta OF _medit PROMPT "全部选定(\<L) ";

KEY CTRL+A, "Ctrl+A" ;

MESSAGE "选定当前窗口中的所有文本或数据项"

DEFINE POPUP 查看v MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF 查看v PROMPT "工具栏(\<T)... "

ON SELECTION BAR 1 OF 查看v do gjxz

DEFINE POPUP 帮助h MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF 帮助h PROMPT "帮助(\<H) " ;

KEY F1, "F1" ;

PICTURE "help3.bmp" ;

MESSAGE "系统帮助"

DEFINE BAR 2 OF 帮助h PROMPT "关于(\<A)" ;

PICTURE "ABOUT2.bmp" ;

MESSAGE "系统版本"

ON SELECTION BAR 1 OF 帮助h do help.prg

ON SELECTION BAR 2 OF 帮助h do form about

ACTIVATE MENU _mSysMenu NOWAIT &&NOWAIT参数表示激活表单后继续执行程序

DO FORM Tz_gj NAME Tz_gj &&打开工具栏

**下面检测工具栏窗口是否已经打开,如果打开在菜单项的旁边加上√

SET MARK OF BAR 1 OF 查看v TO WEXIST("tz_gj")

_SCREEN.AddObject("Image1","BackImage") &&Visual FoxPro主表单中加入图画

READ EVENTS &&开始事务处理,第3READ EVENTS

DEFINE CLASS BackImage AS Image

Top=-30

Left=0

Picture="Back.jpg"

BackStyle=0

Visible=.T.

ENDDEFINE

在上面的主程序设计中,包含了打开启动画面、登录画面和程序菜单的设计,以及设置程序运行环境参数和Visual FoxPro的主窗口(_Screen)的属性。

专家点评

在编写主程序时,应该根据程序的需求设计不同的主程序,例如:一个客户/服务器模式的主程序在程序运行环境设置方面会稍微复杂一些,要进行一些数据提交方式、网络连接参数等方面的设置;又如,一个比较简单的程序在进行主程序设计时,可能就不需要设计菜单,可以考虑在表单中使用页框对象来为程序进行功能模块的划分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值