请问:
组件A   需要调用组件B
组件C 也需要调用组件B
组件N 也需要调用组件B
有没有办法使各组件之间通过组件B交流?如A调用B,并给B设置一个值x
当C调用B时,把x从B中取回来??

解决方案 »

  1.   

    没有用过~
    组件X(a,b,...,x,...,n)调用B,会对B初始化,并辅以新的标示,不知道除了外部数据源以外有没有方法使B中的数据共享!
      

  2.   

    最简单也最容易理解的方法就是借助于磁盘上的文件,Property Get就读文件,Property Let就写文件
      

  3.   

    将你的B组件编译为publicnotcreateable型,在编译一个可以被其它所有组件调用的组件X
    在组件X中用一个函数把唯一的组件b返回给所有的其它组件即可。
      

  4.   

    可以的 把组件B写成activex exe. 就可以保持对象。不需要什么高深技巧。
      

  5.   

    ActiceX EXE 就可以实现这功能,没什么高深的。
    源码地址:hissoft.nease.net\multiXC.rar
      

  6.   

    C和N除非是引用A调用的B,否则三个人各拥有一个独立的B,除非A组件提供接口把自己拥有的B的某个属性X暴露出来给别人用,但这样一来又有个问题,C、N又要引用A对象才能取得该接口,纠缠不清啊。所以还是暴风雪的办法借助文件来实现三个组件共享一个X简单,借助公共变量也一样,反正就是在外部做文章,内部是解决不了的。
      

  7.   

    定义一个共用的B的实例不行啊??public dd as class1dd.caption=a.text
    c.text=dd.caption这样不行吗??
      

  8.   

    还没有搞明白。
    我写得也还不够清楚吧,有些朋友误会了我这么说吧
    程序A.exe 和程序B.exe 都要调用组件C
    现在程序A.exe 运行了。。调用了组件C
    然后程序B.exe运行,也要调用组件C,这个时候,程序B.exe怎么样才能知道组件C正在被其它程序调用?
    程序B.exe是否可以通过组件C与程序A.exe相互通讯?个人感觉,程序A.exe和程序B.exe只有做到共享同一个组件实列C, 才能实通讯,问题是,
    怎么共享一个组件呢???
    兄弟我搞不下去了:( :( :(
      

  9.   

    我前面说过了:
    ActiceX EXE 就可以实现这功能,没什么高深的。
    源码地址:hissoft.nease.net\multiXC.rar我就纳闷了,咋就这么多不爱结贴的人呢????????
      

  10.   

    可以的 把组件B写成activex exe. 就可以保持对象。不需要什么高深技巧。正解,结贴吧
      

  11.   

    剪贴板,文件,数据库(等同文件)都可以实现.
    在数据交换速度不是太高的情况下绝对没有问题.
    要是要求更高的交换速度,可以使用内存虚拟磁盘(还是文件方式,呵呵)
    也可以把这个公用的程序写成一个DDE客户端,专门为它写一个DDE数据源,这样的话再多的副本也不会有问题.(扩展一下,如果这个公用组件或程序只是为了交换数据而用的话可以把DDE客户端写进程序里面,或者写成一个控件之类)
      

  12.   

    呀,这不就是我正要做的吗?ActiveX EXE好像不能用在Web上.
    我也试过,我想用Web方式来访问我的程序.要求就是用ActiveX来实现,但一直没有做到
      

  13.   

    在ASP程序的ActiveX DLL里可以做到(非ASP组件没试过),在B组件里用模块的全局变量,例如模块BBB里面,Public bbb as integer
    在B组件的类里面用Property Let和Property Get对bbb进行赋值和取值
      

  14.   

    把组件B写成activex exe. 使用隐藏窗体保持对象。使用引用计数器决定什么时候卸载组件B(Unload 隐藏窗体)。你就结贴吧