给你一段代码,请研究
#INCLUDE "DsString.h"
*-- DECLARE DLL statements for reading/writing to private INI files
DECLARE INTEGER GetPrivateProfileString IN Win32API AS GetPrivStr ;
String cSection, String cKey, String cDefault, String @cBuffer, ;
Integer nBufferSize, String cINIFileDECLARE INTEGER WritePrivateProfileString IN Win32API AS WritePrivStr ;
String cSection, String cKey, String cValue, String cINIFile*-- DECLARE DLL statements for reading/writing to system registry
DECLARE Integer RegOpenKeyEx IN Win32API ;
Integer nKey, String @cSubKey, Integer nReserved,;
Integer nAccessMask, Integer @nResultDECLARE Integer RegQueryValueEx IN Win32API ;
Integer nKey, String cValueName, Integer nReserved,;
Integer @nType, String @cBuffer, Integer @nBufferSizeDECLARE Integer RegCloseKey IN Win32API ;
Integer nKey*-- DECLARE DLL statement for Windows 3.1 API function GetProfileString
DECLARE INTEGER GetProfileString IN Win32API AS GetProStr ;
String cSection, String cKey, String cDefault, ;
String @cBuffer, Integer nBufferSize
*-- system init setupSET SYSMENU SAVE
SET SYSMENU OFF
SET STATUS BAR OFF
SET TALK OFF
SET DELE ON
SET EXACT ON
SET EXCLUSIVE OFF
SET SAFETY OFF
SET NOTIFY OFF
SET DATE TO ANSI
SET CENTURY ON
SET MARK TO '.'
CLOSE DATABASE ALL
With _Screen
.BackColor = RGB(0,128,128)
.PICTURE ="logo.bmp"
.Closable = .T.
.ControlBox = .t.
.Caption = 'XXXXXX-水电、话费管理系统'
.MaxButton= .t.
.MinButton= .t.
.Movable= .t.
.WindowState = 2
EndWithPublic pCZYNAME,pCZYDM,pAuth,pGDName,pGDID,pCurPath,pDataPath
PUBLIC pAPPID
Public pCWZdatepAPPID="CJ"
LOCAL lcProgram,lcRTVlcProgram = SYS(16)
CD LEFT(lcProgram, RAT("\", lcProgram))pCurPath=sys(5)+curDIR()
IF Right(pCurPath,1)<>"\"
pCurPath=pCurPath+"\"
ENDIF
IF !USED("DATAPATH")
USE DATAPATH IN 0
ENDIF
SELECT DATAPATH
pDataPath = IIF(RIGHT(ALLTRIM(DATAPATH),1) <> "\",ALLTRIM(DATAPATH)+"\",ALLTRIM(DATAPATH))IF DATAEXIST()
ON SHUTDOWN DO DoShutDown.PRG
CLOSE DATA ALL
SET PATH TO &pDataPath SET PROC TO UTILITY.PRG
ON ERROR errmess (ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( ))
ON KEY LABEL CTRL+F12 DO Dot
Do MAINMENU.mpr
READ EVENTS
ENDIF
On Shutdown
ON KEY
SET SYSMENU TO DEFAULT
CLOSE DATA ALL
CLEAR DLLS
RELEASE ALL EXTENDED
CLEAR ALLFUNCTION DATAEXIST
IF !FILE(pDATAPATH+"PhoneDB.DBC")
IF Messagebox("在目录"+pDataPath+"中找不到数据!"+CHR(13)+CHR(13)+"寻找有数据的路径吗?",4+48+256)<>6
WAIT wind "System terminated!" Time 1
On Shutdown
RETURN .F.
ENDIF
local lcLocatePath
lcLocatePath=""
ON error Store "" To lcLocatePath
DO While .T.
lcLocatePath=ALLTRIM(LocFile("PhoneDB.DBC","dbc"))
IF Empty(lcLocatePath) Or !File(lcLocatePath)
IF MESSAGEBOX("路径寻找失败!",5+32+256)#4
WAIT Wind "System Terminated!" Time 1
On Shutdown
RETURN .F.
ENDIF
ELSE
EXIT
ENDIF
ENDDO
pDATAPATH=Left(lcLocatePath,Len(lcLocatePath)-11) &&减去PhoneDB.Dbf的长度
IF !USED("DATAPATH")
USE DATAPATH IN 0
ENDIF
SELECT DATAPATH
REPLACE DataPath.DataPath With pDATAPATH In DATAPATH
SET PATH TO &pDataPath
RETURN .T.
USE
ENDIF
ENDFUNC
#INCLUDE "DsString.h"
*-- DECLARE DLL statements for reading/writing to private INI files
DECLARE INTEGER GetPrivateProfileString IN Win32API AS GetPrivStr ;
String cSection, String cKey, String cDefault, String @cBuffer, ;
Integer nBufferSize, String cINIFileDECLARE INTEGER WritePrivateProfileString IN Win32API AS WritePrivStr ;
String cSection, String cKey, String cValue, String cINIFile*-- DECLARE DLL statements for reading/writing to system registry
DECLARE Integer RegOpenKeyEx IN Win32API ;
Integer nKey, String @cSubKey, Integer nReserved,;
Integer nAccessMask, Integer @nResultDECLARE Integer RegQueryValueEx IN Win32API ;
Integer nKey, String cValueName, Integer nReserved,;
Integer @nType, String @cBuffer, Integer @nBufferSizeDECLARE Integer RegCloseKey IN Win32API ;
Integer nKey*-- DECLARE DLL statement for Windows 3.1 API function GetProfileString
DECLARE INTEGER GetProfileString IN Win32API AS GetProStr ;
String cSection, String cKey, String cDefault, ;
String @cBuffer, Integer nBufferSize
*-- system init setupSET SYSMENU SAVE
SET SYSMENU OFF
SET STATUS BAR OFF
SET TALK OFF
SET DELE ON
SET EXACT ON
SET EXCLUSIVE OFF
SET SAFETY OFF
SET NOTIFY OFF
SET DATE TO ANSI
SET CENTURY ON
SET MARK TO '.'
CLOSE DATABASE ALL
With _Screen
.BackColor = RGB(0,128,128)
.PICTURE ="logo.bmp"
.Closable = .T.
.ControlBox = .t.
.Caption = 'XXXXXX-水电、话费管理系统'
.MaxButton= .t.
.MinButton= .t.
.Movable= .t.
.WindowState = 2
EndWithPublic pCZYNAME,pCZYDM,pAuth,pGDName,pGDID,pCurPath,pDataPath
PUBLIC pAPPID
Public pCWZdatepAPPID="CJ"
LOCAL lcProgram,lcRTVlcProgram = SYS(16)
CD LEFT(lcProgram, RAT("\", lcProgram))pCurPath=sys(5)+curDIR()
IF Right(pCurPath,1)<>"\"
pCurPath=pCurPath+"\"
ENDIF
IF !USED("DATAPATH")
USE DATAPATH IN 0
ENDIF
SELECT DATAPATH
pDataPath = IIF(RIGHT(ALLTRIM(DATAPATH),1) <> "\",ALLTRIM(DATAPATH)+"\",ALLTRIM(DATAPATH))IF DATAEXIST()
ON SHUTDOWN DO DoShutDown.PRG
CLOSE DATA ALL
SET PATH TO &pDataPath SET PROC TO UTILITY.PRG
ON ERROR errmess (ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( ))
ON KEY LABEL CTRL+F12 DO Dot
Do MAINMENU.mpr
READ EVENTS
ENDIF
On Shutdown
ON KEY
SET SYSMENU TO DEFAULT
CLOSE DATA ALL
CLEAR DLLS
RELEASE ALL EXTENDED
CLEAR ALLFUNCTION DATAEXIST
IF !FILE(pDATAPATH+"PhoneDB.DBC")
IF Messagebox("在目录"+pDataPath+"中找不到数据!"+CHR(13)+CHR(13)+"寻找有数据的路径吗?",4+48+256)<>6
WAIT wind "System terminated!" Time 1
On Shutdown
RETURN .F.
ENDIF
local lcLocatePath
lcLocatePath=""
ON error Store "" To lcLocatePath
DO While .T.
lcLocatePath=ALLTRIM(LocFile("PhoneDB.DBC","dbc"))
IF Empty(lcLocatePath) Or !File(lcLocatePath)
IF MESSAGEBOX("路径寻找失败!",5+32+256)#4
WAIT Wind "System Terminated!" Time 1
On Shutdown
RETURN .F.
ENDIF
ELSE
EXIT
ENDIF
ENDDO
pDATAPATH=Left(lcLocatePath,Len(lcLocatePath)-11) &&减去PhoneDB.Dbf的长度
IF !USED("DATAPATH")
USE DATAPATH IN 0
ENDIF
SELECT DATAPATH
REPLACE DataPath.DataPath With pDATAPATH In DATAPATH
SET PATH TO &pDataPath
RETURN .T.
USE
ENDIF
ENDFUNC
解决方案 »
- 用分号 ; 作为语句的终止符,是真的规范吗?我为何看不到这种方式呀?
- 提问
- 大家帮忙解释下这个SQL中语句的执行结果啊
- 菜鸟问题;求几条对yyyy-mm-dd格式的时间日期加减操作的SQL语句
- 这样的触发器的条件语句该怎么写?
- 关于distinct查询问题。但是我要求的查询是一条记录,而不是一个字段
- 向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
- SQL查询语句的问题,高手请进!--我现在最多只能给42分
- ORA-12154:TNS:无法处理服务名,怎么办?
- 小菜鸟求助大佬们,如何才能使SQL查询中结果为空的显示为0呢?具体情况如下:
- 如何将一个本地的DBF表用Query或其它控件用一个简单的方法导入SQL Server?
- 请教几个有关SQl Server 7的数据库备份的问题:
1、ON SHUTDOWN DO ???.PRG 在执行退出时应怎样。
2、QUIT 如果已编译,最好是加上。
3、CLEAR EVENTS 清除事件过程
我现在没有什么好办法。不过,我有办法让它只出现一次,闪一下后隐藏起来。退出时
也不会出现你说的那种情况,还算干净。
设计主程序
—screen.visible=.f.
do form 主表单
read events
—screen.visible=.t.
在主表单中destory事件中加clear events
vfp 公司把程序搞的这么乱,遗憾!!!!!!!!!!!
sysm=off
再把config.fpw编译进exe
可关闭主表单