本人在编写的一个程序commonframe,在这个程序commonframe应用的open事件中编写代码,代码前部分功能是连接数据库,连接前先判断注册表指定键值是否存在,如果不存在,就打开一个窗口w_regedit要求用户配置连接参数,保存配置后再从w_regedit窗口返回commonframe应用的open事件,继续执行open事件open(w_regedit)后面的代码。
现在的问题是,只有将w_regedit窗口设置成reponse,commonframe应用的open事件执行到open(w_regedit)语句时,才会在打开w_regedit窗口的同时,停止commonframe应用的open事件的后续代码执行。如果w_regedit窗口设置成main、child、popup,则在打开w_regedit窗口的同时,继续commonframe应用的open事件的后续代码执行。
但是w_regedit窗口设置成reponse,在完成连接参数配置后,窗口就关闭了,commonframe应用的open事件之后的代码也无法继续执行。
我现在要解决的是,如何在执行完w_regedit窗口后,返回commonframe应用的open事件,继续执行后面的代码
以下是commonframe应用的open事件的部分代码
/*(4)连接数据库*/
string ls_dbms,ls_logpass,ls_logid,ls_datasource,ls_database,ls_dbparm
//判断注册表中是否有值,没有值则打开注册表赋值窗口
if RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","DataSource1",RegString!,ls_datasource) < 0 then open(w_regedit)
//从注册表中取出连接数据
RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","DBMS",RegString!,ls_dbms)
RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","LogPass",RegString!,ls_logpass)
RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","LogId",RegString!,ls_logid)
RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","DataSource",RegString!,ls_datasource)
RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","DataBase",RegString!,ls_database)
......
以下是w_regedit窗口的配置连接参数按键cb_set的部分代码
li_return = RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\PZW\pinggu\1.0","DataSource",RegString!,ls_servername)
if li_return <> 1 then
messagebox('提示信息','无法修改相关注册表信息!',Exclamation!)
return
end if
messagebox('提示信息','更新注册表成功!',Exclamation!)
close(w_regedit)
------解决方案--------------------
w_regedit 的close() 事件里有代码吗?