:)
这个问题我来帮你吧
一个exe文件,一个dll文件在dll 的窗体里不要放database,而是在public里声明一个database;
在exe文件里放好database,设置好以下是源代码dll文件导出函数为showform;unit Unit1;interfaceuses
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;interfaceuses
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;end.
这个问题我来帮你吧
一个exe文件,一个dll文件在dll 的窗体里不要放database,而是在public里声明一个database;
在exe文件里放好database,设置好以下是源代码dll文件导出函数为showform;unit Unit1;interfaceuses
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;interfaceuses
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;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货