sharksun 发表于 2004-4-21 01:26:00

对于vba,thisdrawing和模块中的代码如何区别?

就是说什么样的代码适合放在thisdrawing代码窗口,什么样的适合放在模块窗口?


只是私有的就放在thisdrawing里,public就放在模块里么?


还有一问,就说假如没有form的话,执行过程是先执行thisdrawing里的,再执行模块里的代码?如果有form的话,由于thisdrawing里的过程是私有的,form里不能调用。那么执行顺序应该是先thisdrawing,再根据form中的不同事件调用模块里的过程?

efan2000 发表于 2004-4-21 20:51:00

这是三个不同的概念吧,类模块、模块和窗体。类模块是封装的,它在外部的调用必须先实例化,然后操作它所提供的方法或者属性,最后销毁对象。模块是公共的,主要是存放一些全局使用的变量和过程、函数。窗体就是提供用户操作的界面了。

sharksun 发表于 2004-4-23 13:09:00

谢谢。


你说得这些我明白。


但不是我问的。       thisdrawing属于类模块?

mccad 发表于 2004-4-24 07:12:00

thisdrawing属于模块,而不是类模块。<BR>对于事件的代码只有在ThisDrawing中写。

sharksun 发表于 2004-4-25 21:06:00

对于事件的代码只有在ThisDrawing中写。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??       那普通模块和thisdrawing模块就没区别了?事件的代码总得有“事件”发生才执行吧,那代码放入普通模块中不是一样的么?

雪山飞狐_lzh 发表于 2004-4-25 21:11:00

按我的理解ThisDrawing相当于窗体

mccad 发表于 2004-4-25 21:16:00

可以按Lzh741206的理解,也就是Thisdrawing模块是AutoCAd窗口的代码窗口。所以它可包含AutoCAD的事件代码,也可包含普通的过程代码。

sharksun 发表于 2004-4-25 21:29:00

稍微明白一点。


我看到过这样的情况:


                                               一个程序里只有普通模块和thisdrawing,没有窗体。thisdrawing里的过程代码都是私有的。还没有set,get之类的语句来调用。那么,执行程序的时候,是不是先执行thisdrawing中的代码,然后执行module里的?


(我本想用逐行调试的方法来判断一下,但是vba和vb不同,调试的时候,总是从当前的代码窗口中执行,而不是程序整体调试)

雪山飞狐_lzh 发表于 2004-4-25 21:31:00

把代码传上来好解释些

mccad 发表于 2004-4-25 21:32:00

晕,你还没有明白,程序的执行是按过程来运行的。运行哪个过程是由你来定的,而程序过程间的调用本来已经由程序来身定好的,而不是说哪个过程放在哪个模块中就可以先运行。
页: [1] 2
查看完整版本: 对于vba,thisdrawing和模块中的代码如何区别?