以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  项目开始运行时的事件设置  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3227)

--  作者:reachtone
--  发布时间:2009/6/21 12:30:00
--  项目开始运行时的事件设置
我想在项目开始运行的时候,先判断配置文件是否存在。如果存在的话,就继续;否则就弹出一个提示窗,确定后即退出系统。
请问这个事件应怎么设置?应把它放到哪里?我在BeforeConnectOuterDataSource和LoadUserSetting里设置了,运行时都会出错。
是事件代码不对吗?

if FileSys.FileExists(projectpath & "ConnConfig.ini") Then
    Messagebox.Show("文件已经存在!","提示")
Else
    Messagebox.Show("数据库配置文件不存在,系统无法运行!","提示")
    Syscmd.Project.Exit()
End If
--  作者:狐狸爸爸
--  发布时间:2009/6/21 15:05:00
--  
在这两个事件中是无法退出系统的,在AfterLoadOpenProject事件中设置代码吧。
也许需要来一个BeforeOpenProject事件。
[此贴子已经被作者于2009-6-21 15:12:28编辑过]

--  作者:yangming
--  发布时间:2009/6/21 15:13:00
--  
在AfterLoadOpenProject事件中设置代码,可行,我试过了
--  作者:reachtone
--  发布时间:2009/6/21 16:10:00
--  
    在项目事件中只有AfterOpenProject,没有找到2、3楼所说的AfterLoadOpenProject事件。
    刚才试了一下,在AfterOpenProject事件中设置确实是可以,但这个事件是在DataTable、Table和窗口都已经生成的情况下执行的。
    而我现在的目的是:先判断配置文件是否存在,如果文件存在,再按照配置文件中的字符串去连接并加载外部数据。如果把刚才的事件放到AfterOpenProject事件中去执行,这样会不会出错呢?而且,我刚才试了一下,由于AfterOpenProject事件没有e参数,类似于下面的代码根本就是错误的:

图片点击可在新窗口打开查看此主题相关图片如下:snap1.gif
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-6-21 16:21:04编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/6/21 16:14:00
--  
是AfterOpenProject事件,我打错了。
可以在这个事件中使用下面的代码退出系统:
syscmd.project.exit()

当然这不是一个好的方案,应该增加一个带Cancel参数的BeforeOpenProject事件。
--  作者:reachtone
--  发布时间:2009/6/21 16:17:00
--  

论坛是不是有问题啊?4楼的回复,我都修改很多次了,代码中的第二行在提交后总是丢失。
晕死了,还是丢,4楼已改用图片了。

[此贴子已经被作者于2009-6-21 16:22:44编辑过]

--  作者:reachtone
--  发布时间:2009/6/21 16:25:00
--  
以下是引用狐狸爸爸在2009-6-21 16:14:00的发言:
应该增加一个带Cancel参数的BeforeOpenProject事件。

如果有这个事件就不会存在上面的问题了。


--  作者:yangming
--  发布时间:2009/6/21 16:39:00
--  

AfterOpenProject事件中



图片点击可在新窗口打开查看此主题相关图片如下:项目文件.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2009/6/22 8:49:00
--  
6月22日更新,已经加上了BeforeOpenProject事件。
[此贴子已经被作者于2009-6-22 8:49:27编辑过]

--  作者:kylin
--  发布时间:2009/6/22 8:55:00
--  
刚才试了一下,在BeforeOpenProject事件中好像不能获取user.name,也不能获取连接数据源等等,所以用途不大,还是用AfterOpenProject事件。