请教VFP高手?SOS!!!高分相谢!!!

qinmeng 2000-08-19 01:31:00
我在VFP编程时遇到一个问题,请各位高手不吝赐教。在一个命令按钮的Click()事件中有一段程序代码,代码中间需要调用执行另外一个表单文件,本希望程序在此暂停,待调用的表单处理结束返回后,再继续执行后面的代码。但实际运行时,调用另外的表单后,程序并不暂停下来,而是继续执行后面的代码,请问有谁能解决这个问题?
...全文
190 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
「已注销」 2001-02-16
天……
你就不会定义一个变量
检测检测……直到子窗口被关闭了……传回值了……告诉原来的窗口……我被关闭啦……
那么原来的窗口就继续运行就是……

地……
你就不会检验一下这个窗口是否被打开……好想是windowexist函数……如果此窗口存在那么就歇着……

人……
你就不能试着挂起一下……

##……
是不是在做运行中发现没注册就弹出一个窗口……让人家注册云云……

浅见……
请海涵……
回复
firelmz 2001-02-16
你可以将表单保存为类,然后用程序运行时调用createobject()方法建立表单,并用show()方法显示,当然表单要是模式的。这样你就可以控制表单了。
回复
hbyhwxb 2001-02-16
错了,是destroy事件
回复
hbyhwxb 2001-02-16
可以用一个全局变量与此form相连接起来,如下 :
public abc
do form yourformname linked abc
在release事件中写上:release abc
回复
nononono 2001-02-16

只需要把被调用的表单(表单B)的windowtype置为1(模式)既可。根本不用其它的设置。

你需要确定是否在表单B关闭前就继续执行调用表单(表单A)调用表单B的语句后面的代码:

如果是这样的代码顺序:

..... && A1
do form formB
..... && A2

你在 A2行处设置断点,看看是不是在一个模式表单B关闭前就执行到了A2处。


回复
maddog_chen 2001-02-16
笨办法:
1.加一个循环
2.关闭调用表单时,返回令原表单跳出循环的参数.
回复
yjchdy 2000-08-27
我也曾碰到过类似问题,当时我也没有很好解决,后来仔细想了一下,VFP的表单调用和早期的FOXPRO的BROWSE命令是不同的,VFP是事件驱动,调用表单对象在VFP中是作为一个事件来处理的,完成这个调用后自然要执行下一条命令,你处理完否表单,系统是不会管的,除非你将事件驱动关闭。你的问题不是没有解决的方法,一是你可将调用该表单下面的程序交给该被调用表单中的任何一个控件或按钮;二是在特殊情况下可以将表单设置为最大化,将alwaytop设置为.T., CLOSE和最小化属性也设置为.F.。 这样应该可以解决问题。
回复
rongle 2000-08-27
除windowtype=1外,还须showwindow=2, minbutton=.f., maxbutton=.f.,(movable=.f.)
应该没错!
回复
w102272 2000-08-19
设置表单的windowtype
定义为:object.windowtype=[ntype] ntype: 0: 无模式,1:模式,
你只需要把表单的windowtype设置为1,即:模式。就可以了
回复
qiangsheng 2000-08-19
我没用过VFP,只能给你提个思路,如果需要新开个窗口,就把新开的窗口设置成RESPONSE类型(在PB里是这样的,不知道在VFP里怎么定义)。
如果没有新窗口打开,我还没想到是怎么样的。
回复
qinmeng 2000-08-19
我已将表单的windowtype值定义为1-模式,但只能暂停一下,如果我在表单空白地方点击几下,还没有处理完毕或关闭表单,程序又返回原来调用的地方,继续执行后面的代码,问题还是没有彻底解决! 调用的表单上有几个标签、一个表格、一个组合框、两个命令按钮。
回复
jack_niu 2000-08-19
表单模式化是对的。
回复
wu_xin 2000-08-19
用过VFP的VCX吗?
把表单放到里面,需用时建立一个实例,SHOW(1),即可模式使用!
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2000-08-19 01:31
社区公告
暂无公告