|
這個(gè)問(wèn)題我來(lái)幫你吧 一個(gè)exe文件,一個(gè)dll文件 在dll 的窗體里不要放database,而是在public里聲明一個(gè)database; 在exe文件里放好database,設(shè)置好 以下是源代碼 dll文件 導(dǎo)出函數(shù)為showform; unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, DBTables; type TForm1 = class(TForm) Table1: TTable; DataSource1: TDataSource; DBGrid1: TDBGrid; private { Private declarations } public database1:tdatabase; { Public declarations } end; procedure showform(applicationname:tapplication;databasename:tdatabase);stdcall; var Form1: TForm1; dllapplication:tapplication; implementation {$R *.dfm} procedure showform(applicationname:tapplication;databasename:tdatabase);stdcall; begin application:=applicationname; application.CreateForm(tform1,form1); form1.Database1:=databasename; form1.Table1.DatabaseName:=form1.database1.DatabaseName; form1.table1.Open; form1.ShowModal; form1.Free; end; initialization dllapplication:=application; finalization dllapplication:=application; end. exe文件 unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables; type TForm2 = class(TForm) Database1: TDatabase; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; procedure showform(applicationname:tapplication;database:tdatabase);stdcall;external 'dllfile.dll ' name 'showform '; var Form2: TForm2; dllapplication:tapplication; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin showform(application,database1); end; |
|
|