我想把一个功能做成dll,在主窗体点击时出现这个功能窗体,怎么做那》?

解决方案 »

  1.   

    在dll中export一个函数或过程,其用来显示窗体
      

  2.   

    library Tscan;uses
      Windows,
      Messages,
      SysUtils,
      Classes,
      Forms,
      Dialogs,
      jpeg,
      ADODB,  main in 'main.pas' {scanfrm};function scanimage(lyid:integer;lynr,DRIVER,server,database,table,f1,f2,f3,UID,PWD:pchar):boolean; stdcall
    begin scanfrm:=Tscanfrm.Create(scanfrm);
        with  scanfrm do
        begin
           scanfrm.b1:=f1;
           scanfrm.b2:=f2;
          scanfrm.b3:=f3;
          ly.Tag:=lyid;
          ly.Text:=lynr;
          try
            ADOConnection1.ConnectionString:='';
            if DRIVER='sql server' then ADOConnection1.ConnectionString:='Extended Properties="DRIVER='+DRIVER+';SERVER='+server+';UID='+UID+';PWD='+PWD+';DATABASE='+database+';Network=DBMSSOCN"';
            if DRIVER='access' then ADOConnection1.ConnectionString:='DBQ='+server+database+';DefaultDir='+server+';Driver={Microsoft Access Driver (*.mdb)};DriverId=281;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID='+uid+';pwd='+pwd+';UserCommitSync=Yes';
            ADOConnection1.Connected:=true;      except
            showmessage('数据与服务器连接不正常,请检查服务器设置!');
            Result:=false;
            exit;
          end;
          aDODataSet2.Close;
          ADODataSet2.CommandText:='select * from '+table+' where '+b2+'=' +inttostr(ly.Tag) +' and '+b1+'='''+ ly.Text +''' order by id';
          ADODataSet2.Open;      If ADODataSet2.RecordCount>0 Then
            begin
              ADODataSet2.First;
              key.text := ADODataSet2.FieldByName('id').asstring ;
            end  Else  key.text := '0';
       end;
        scanfrm.ShowModal;
        Result:=true;
      end;
       exports
      scanimage;
    begin
    end.
      

  3.   

    确实不少,不过这对我们初学者来说,。困难重重阿问题描述:     我用DLL封装业务规则,其中用到和数据库的操作,我用函数方式返回TDatasource 供主程序界面的DbGrid的DataSource用,显示一切正常,但在
    点击DBGrid的单元格(其中没有写任何事件或方法排除其他可能因素)的时候,
    就会出现错误提示"Invalid Pointer Operation"
    我估计是内存管理方面的问题,不知道哪里出现点问题?帮帮忙,各位大哥级人物。
      

  4.   

    不好意思,分数实在紧张阿,这两天,dll问题我贴了400分了,。还结不了帐,让人心碎阿
    借楼主的手气,看看能不能把dll问题集中起来,大家一起high