mikewolf2k 发表于 2004-5-17 19:35:00

两个vb问题

1.vb activex dll不支持end语句。请问在dll中还有什么方法能无条件终止程序的运行。


2.在cad2000中打开多个文件时,如何将指定图形设为activedocument.

雪山飞狐_lzh 发表于 2004-5-17 23:20:00

1、End语句?是Exit语句吧


2、Application.Documents(0).Activate

mikewolf2k 发表于 2004-5-18 16:34:00

1 exit只是退出当前的sub,如果是在别的过程中通过call调用此sub就不能结束整个程序了


2. 是要指定文件(不知道顺序)激活,不一定是0.

雪山飞狐_lzh 发表于 2004-5-18 21:19:00

1、不用sub,用Function,通过判断函数返回值决定是否继续执行


2、指定文件,总要知道什么条件吧,用历遍,比如


For Each i in Application.Documents


if i.FullName=pFileName then i.Activate:exit for


next i

mikewolf2k 发表于 2004-5-18 21:56:00

1 我的程序是


sub linkcad()


                               ........'其他语句,省略


sub end


sub cadtext()


                                               call linkcad


                                               ......'其他语句,省略


sub end


我想如果连结cad出错的话就无条件结束程序的执行。按照我的代码,call linkcad出错的话还会继续后面的语句,到不能执行的地方再由系统软件而不是按我的意思弹出错误框,不能方便的提示用户错在哪。

雪山飞狐_lzh 发表于 2004-5-18 22:47:00

Function LinkCad() As Boolean<BR>                       Dim Linked As Boolean<BR>                       '此处连接Cad,并根据是否连接给Linked赋值<BR>                       LinkCad = LinkCad<BR>End Function<BR>Sub CadText()<BR>                       If Not LinkCad Then Exit Sub


End Sub<BR>

mikewolf2k 发表于 2004-5-19 19:48:00

看来是没有结束程序运行的方法了。我的cadtext也是别的sub调用的,这种方法不适用。


不过怎么样,多谢了,献花.

雪山飞狐_lzh 发表于 2004-5-19 22:24:00

如果这样的话,用全局变量控制,将Linked声明为全局变量,每个Sub里第一句判断,如


Sub Sub1()<BR>                       If Not LinkCad Then Exit Sub





End Sub


Sub Sub2()<BR>                       If Not LinkCad Then Exit Sub





End Sub

mikewolf2k 发表于 2004-5-19 22:52:00

这样的话我的程序可要大改了~


实在不行也只能这样了。
页: [1]
查看完整版本: 两个vb问题