直接把TDataModule的对象指针传进DLL
比方说DLL中输出了一个Init(dm: TMyDataModule);的函数。
TMyDataModule在创建后就可以调用Init(mydm);将TMyDataModule传进去并存入一个变量,当然也要是TMyDataModule类型的。
在DLL中便可引用TMyDataModule上的所有对象。

解决方案 »

  1.   

    让主窗口上的TABLE数据源指到DLL的ClientDataSet上吗?
      

  2.   

    我没这么用过,只能提个思路:
    基本就按照 prometheusphinx(白日梦) 所说,
    用一个函数。主程序中的TDCOMConnection,TClientDataSet 
    均通过函数参数传入。
    该DLL提供一个函数:
    procedure ConnectedToDatabase(DCOMConnection: TDCOMConnection)
    begin
      DCOMConnection.Connected := true;
      ...
    end;procdure DoSomething(DataSet: TDataSet);
    begin
      DataSet.FieldByName('field').Value := ...
    end;主程序调用该函数时传入相应参数。