各位朋友,我封装了一个组件MyComponent,这个组件里有一个DataSource,  
 
我想让普通的DBEdit或其它的DataControl能够“在设计时”把它们的DataSource指向MyComponent.DataSource,请问我该如何做,请指教  

解决方案 »

  1.   

    var
      a: TMyComponent;
    begin
      a := TMyComponent.Create;
      a.DataSouse := DataSouse1;
      DBEdit1.DataSouse := a.DataSouse; 
    end;
      

  2.   

    楼上的朋友,位移量大得有点夸张了吧,
    第一、我说了,也强调了,是在设计时,Not 运行时
    第二、Mycomponent.DataSource是只读的,准备让其它DataControl引用的,并不需要赋值,
      

  3.   

    我注册了组件,还是不行,在DBEdit的属性DataSource的编辑下拉框中,还是找不到MyComponent.DataSource
      

  4.   

    俺 在VCL里搞了半天也没有结果.关注.学习.
      

  5.   

    DataSource应是一个直接的属于窗口与DBEdit平级的的对象
    而不是某一个控件或对象的属性;
    如果是一个属性当然不行了,因为对象的属性在设计时是不能引用其它对象的.
    除非你把你的组件设计成TDataSource的继承;
      

  6.   

    你下拉框要找到DataSource需要你的MyComponent.DataSource在Create的时候Owner必须是设计窗体才能在下拉框选择。否则是不能选择的。
      

  7.   

    delphi设计界面就是如此,如果你要为一个没有赋值对象属性,选择的组件话,这个组件的Owner就得是设计的窗体。除非自己写组件编辑器,除了这两点之外,再没有可能,就是如此。
      

  8.   

    其实你写完后,直接在DBEdit.DataSource里,直接输入MyComponent.DataSource就可以了,虽然下拉框里是空的
      

  9.   

    直接输入MyComponent.DataSource。要不你直接编辑DFM文件。