本帖最后由 bcrun 于 2010-04-04 09:10:40 编辑

解决方案 »

  1.   

    在模块里面,你定义的PUBLIC的,那么在本工程里的任何地方,都可以直接访问,如果定义的是PRIVATE的,那么只能在本模块内访问,这就是所谓的变量生存期。在窗体里定义的PUBLIC的,你可以在其他地方访问,但需要带上窗体名称,如FORM1.AA(1,2,3),如果定义的是PRIVATE,那么就只能在本窗体内使用。DIM和PRIVATE是一个意思。
      

  2.   

    窗体模块和类模块都有一个隐含的类对象,可以使用new关键字进行实例化,它们的所有变量、函数、过程、方法和属性等是在运行时决定地址的,因此在使用时,需加上实例化后的类对象变量,内部调用时比较特殊,当省略类对象变量时,编译程序为自动视为Me对象变量(相当于C++的this指针),当然也可以明确使用Me或对象变量如Form1。
    而标准模块中的变量、函数、过程、方法和属性等地址是在编译时就确定了的,使用时不需要实例化,也不需要加上类对象变量前缀(即使Me关键字也不行)。编译时就确定了地址的,可以方便函数指针运算符AddressOf关键字的使用。
    至于Public和Private,则表示变量、函数、过程、方法和属性(后4个类型都可以视作函数)的作用域,在标准模块里,public表示全工程可见,基本上上global一样,private表示本模块可见,而在窗体模块和类模块里,public表示类对象的调用者可见,private表示类内部可见。在ActiveX DLL中,类模块中的public还可以跨工程让调用者可见,而friend虽然也可以让调用者可见,但不能跨工程。
    这些都是基本概念啊,唉!
      

  3.   

    模块中的函数可以这样调用:
    modpublic.fun1
    窗口中的函数可以这样调用:
    from1.fun1也就是说你可以把公共模块看作为全局对象,当你访问全局的方法funx时,首先会遍历各个对象,寻找同名的funx方法,找到之后返回给你使用.在寻找过程中,有个限制条件,就是只可以找public的.