Foxtable(狐表)用户栏目专家坐堂 → [求助]全局代码中的Public Declare Function在项目事件中怎么定义


  共有2897人关注过本帖树形打印复制链接

主题:[求助]全局代码中的Public Declare Function在项目事件中怎么定义

帅哥哟,离线,有人找我吗?
shenyl0211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
[求助]全局代码中的Public Declare Function在项目事件中怎么定义  发帖心情 Post By:2019/2/16 12:14:00 [只看该作者]

这是在【全局代码】中定义的:

Public Declare Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Integer, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Integer, ByVal wlange As Integer, ByVal dwTimeout As Integer) As Integer

但在【BeforeOpenProject】事件中尚未生效,因此不能在该事件中使用MessageBoxTimeout(BaseMainForm.Handle,"正在升级, 请停止任何操作!", "提示", vbOKonly, 0, 3000) '3秒后自动关闭提示窗口

现在想在【BeforeOpenProject】事件中判断项目需要升级后,立刻执行升级(自定义代码),并用上述定时提示。

在【BeforeOpenProject】事件中执行升级的好处是可以不执行后续的项目事件,减少启动时间。当然也可以通过增加条件语句来达到不加载表、不执行初始化设置,但这就有点啰嗦了。

使用MessageBoxTimeout的好处也是在于缩短时间,因此,如果用MessageBox.show还不如放在【AfterOpenProject】事件中,再使用MessageBoxTimeout

如果不在乎几秒钟的时间,也可以在【AfterOpenProject】事件中执行升级。

求助:上述的【全局代码】怎么在BeforeOpenProject】事件中定义?或能否定义?

谢谢!



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/16 12:19:00 [只看该作者]

这个没有办法【BeforeOpenProject】事件全局代码还没有初始化,不能使用的。但是这种定义也只能放到全局代码中。

曲折一点可以这样,用vs编译一个dll,把全局代码的定义放到dll中封装好,然后在【BeforeOpenProject】事件中调用

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2019/2/17 11:54:00 [只看该作者]

谢谢蓝版

 回到顶部