|
例1:在程序开始时设置系统环境
*-- 设置工作目录
cCurrentProcedure = SYS(16,1)
nPathStart = AT(":",cCurrentProcedure) - 1
nLenOfPath = RAT("\", cCurrentProcedure,2) - (nPathStart)
SET DEFAULT TO (SUBSTR(cCurrentProcedure, nPathStart, nLenOfPath))
SET PATH TO PROGS,LIBS,MENUS,HELP,INCLUDE,FORMS,BITMAPS
*-- 修改程序标题并将屏幕放到最大,在编译成.EXE的文件运行时,这是必须的
MODIFY WINDOW SCREEN TITLE "测试" NOCLOSE
ZOOM WINDOW SCREEN MAX
*-- 屏蔽系统菜单
SET SYSMENU OFF
*--定义用于保存系统设置的全局变量
PUBLIC ;
GcOldTalk,;
gcOldPath,;
gcOldDir,;
gcOldClassLib,;
gcOldEscape,;
gcOldSafety,;
gcOldProc,;
gcOldStatus,;
gnOldMemo,;
gcOldMultiLocks,;
gcOldHelp,;
gcOldDeleted,;
gcOldExclusive,;
gcOldNotify,;
gcOldBell,;
gcOldNear,;
gcOldExact,;
gcOldIntensity,;
gcOldConfirm,;
gcOldOnShutDown,;
gcOldCompatible
*--保存原始的系统状态,以便在退出时恢复
GcOldTalk = SET("TALK")
gcOldPath = SET("PATH")
gcOldDir = FULLPATH(CURDIR())
gcOldClassLib = SET("CLASSLIB")
gcOldEscape = SET("ESCAPE")
gcOldSafety = SET('SAFETY')
gcOldProc = SET('PROCEDURE')
gcOldStatus = SET('STATUS BAR')
gnOldMemo = SET('MEMOWIDTH')
gcOldMultiLocks = SET('MULTILOCKS')
gcOldHelp = SET('HELP', 1)
gcOldDeleted = SET('DELETED')
gcOldExclusive = SET('EXCLUSIVE')
gcOldNotify = SET('NOTIFY')
gcOldBell = SET('BELL')
gcOldNear = SET('NEAR')
gcOldExact = SET('EXACT')
gcOldIntensity = SET('INTENSITY')
gcOldConfirm = SET('CONFIRM')
gcOldOnShutDown = ON('SHUTDOWN')
gcOldCompatible = SET("COMPATIBLE")
gcOldDate = SET("DATE")
gcOldCentury = SET("CENTURY")
*-- 设置SET 和ON 命令
SET SAFETY OFF
SET PROCEDURE TO UTILITY.PRG
SET CLASSLIB TO MAIN
SET MEMOWIDTH TO 120
SET MULTILOCKS ON
SET HELP TO HELP\MAIN.CHM
SET DELETED ON
SET EXCLUSIVE OFF
SET NOTIFY OFF
SET BELL OFF
SET NEAR OFF
SET EXACT OFF
SET INTENSITY OFF
SET CONFIRM ON
SET COMPATIBLE OFF
SET DATE ANSI
SET CENTURY ON
SET ESCAPE OFF
ON SHUTDOWN DO OnShutDown
注意:运行上述代码时程序文件UTILITY.PRG,OnShutDown,类库文件MAIN及帮助文件MAIN.CHM必须存在。
例2:在程序结束时恢复系统环境
LOCAL luTemp
SET PATH TO (gcOldPath)
luTemp = gcOldClassLib
SET CLASSLIB TO &luTemp
luTemp = gcOldProc
SET PROCEDURE TO &luTemp
SET MEMOWIDTH TO gnOldMemo
luTemp = gcOldMultiLocks
SET MULTILOCKS &luTemp
luTemp = gcOldSafety
SET SAFETY &luTemp
luTemp = gcOldStatus
SET STATUS BAR &luTemp
CD (gcOldDir)
luTemp = gcOldDeleted
SET DELETED &luTemp
luTemp = gcOldExclusive
SET EXCLUSIVE &luTemp
IF FILE(gcOldHelp)
SET HELP TO (gcOldHelp)
ENDIF
luTemp = gcOldNotify
SET NOTIFY &luTemp
luTemp = gcOldBell
SET BELL &luTemp
luTemp = gcOldNear
SET NEAR &luTemp
luTemp = gcOldExact
SET EXACT &luTemp
luTemp = gcOldIntensity
SET INTENSITY &luTemp
luTemp = gcOldConfirm
SET CONFIRM &luTemp
luTemp = gcOldOnShutdown
ON SHUTDOWN &luTemp
luTemp = gcOldEscape
SET ESCAPE &luTemp
luTemp = gcOldCompatible
SET COMPATIBLE &luTemp
luTemp = gcOldTalk
SET TALK &luTemp
luTemp = gcOldDate
SET DATE &luTemp
luTemp = gcOldCentury
SET CENTURY &luTemp
CLOSE ALL
CLEAR DLLS
RELEASE ALL EXTENDED
CLEAR ALL
例3:程序崩溃时恢复系统环境
在程序设计期间,有时会因程序错误而使系统崩溃。当系统崩溃时,可能会有打开的表没有关闭,数据工作期不能释放,表单在屏幕上不能清除,菜单没有释放等一系列令人心烦的事。当你要手工地恢复系统到初使状态真还要费不少事,但是你可以自己编写一个过程文件来自动完成这些工作。这样,当系统崩溃时,你只需在命令窗口打入
DO XXX 即可。
*:******************************************************************************
*:
*: 过程文件C:\HIGHMIS\HF.PRG
*:
*:******************************************************************************
ON ERROR
SET PROCEDURE TO
POP KEY ALL
SET COLOR TO
SET SYSMENU TO DEFA
CLOSE ALL
RELEAS ALL EXTE
CLEAR DLLS
CLEAR EVENTS
CLEAR FIELDS
CLEAR GETS
CLEAR MACROS
CLEAR MEMORY
CLEAR MENUS
CLEAR POPUPS
CLEAR PROGRAM
CLEAR PROMPT
CLEAR READ ALL
CLEAR TYPEAHEAD
CLEAR WINDOWS
SET DEVICE TO SCREEN
CLEAR
SET EXCL ON
SET TALK ON
SET MESSAGE ON
RELEASE WINDOW 常用
SET HELP TO
SET HELP ON
CANCEL
例4:查看系统设置
*:******************************************************************************
*:
*: 过程文件C:\HIGHMIS\PROGS\SYSTEST.PRG
*:
* 用途:查看当前系统信息
**************************************************************************
PROCEDURE SYSTEST
PARAMETERS T__Method, T__File
RELEASE ALL EXCEPT T__*
PRIVATE ALL LIKE T__*
CREATE VIEW it
SET TALK OFF
CLOSE ALL
SET SAFETY OFF
SET ALTERNATE TO (IIF(EMPTY(T__File), "SysTest.TXT", T__File))
SET ALTERNATE ON
SET SAFETY ON
SET EXACT OFF
T__IsVisual = .T.
T__OutputFile = SET("ALTERNATE", 1)
DEFINE WINDOW T__win FROM 0,0 TO SROWS(),SCOLS() TITLE T__OutputFile CLOSE SYSTEM ZOOM
ACTIVATE WINDOW T__win
??"*** SysTest Version 2.00","日期",DATE(),"时间",TIME(),"***"
T__IsError = .F.
IF (EMPTY(m.T__Method) OR UPPER(m.
[1] [2] [3] [4] 下一页
|