问题是这样的,比如有一个主窗体去使用一个dll,然后主窗体中有一个ADOConnection,而dll中有一个ADOQuery,我应该怎么样才能让dll中的这个ADOQuery连接上主窗体中的ADOConnection呢?
最好能给出代码的,我本来是想这么实现的:
form1中:var
Form1: TForm1;
function creatFo():TForm;external 'Project2.dll';
function getCon():tadoquery;external 'Project2.dll';
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
form2: TForm;
begin
form2:=creatFo;
form2.Show;
getcon.Connection:=adoconnection1;
end;end.dll中: function creatFo():TForm;
begin
result:=tform1.Create(nil);
end;
function getCon():tadoquery;stdcall;
begin
result:=ADOQuery1;
end;exports
creatFo,
getCon;
end.
最好能给出代码的,我本来是想这么实现的:
form1中:var
Form1: TForm1;
function creatFo():TForm;external 'Project2.dll';
function getCon():tadoquery;external 'Project2.dll';
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
form2: TForm;
begin
form2:=creatFo;
form2.Show;
getcon.Connection:=adoconnection1;
end;end.dll中: function creatFo():TForm;
begin
result:=tform1.Create(nil);
end;
function getCon():tadoquery;stdcall;
begin
result:=ADOQuery1;
end;exports
creatFo,
getCon;
end.
解决方案 »
- 求教关于自定义组件的问题
- 关心/热爱/拥护delphi的人都进来(对delphi认为是垃圾,不知道学什么语言的人也可以进来。经验分享)
- combobox问题
- 100分求好的【需求分析】文档,内容不限!
- ××××opendialog中多选,怎么得到多选的文件信息×××××
- 如果关闭一个窗体?
- 一个简单的数据库操作问题
- 关于ActiveX控件大小的问题!!
- 在关闭WINDOWS时,出现的对话框“关闭程序”,在程序中怎检测到?因为一出现这个对话框,程序就暂停运行了
- 如何用程序知道机器是否连接到网络?
- 急问:DELPHI怎么调用VC++里的__stdcall导出接口?
- 将Timage控件中的图片保存到oracle中。用query。
//建立的dll文件
uses
SysUtils,
DB,
ADODB,
Classes,
Dialogs,
Unit2 in 'Unit2.pas';{$R *.res}procedure GetCon(aCon: TADOConnection); stdcall;
begin
MyCon := aCon;
end;procedure DisplayMessage; stdcall; //供窗体来测试
begin
ShowMessage(MyCon.ConnectionString);
end;exports
GetCon,
DisplayMessage;begin
end.//以下内容是dll文件包含的一个pas文件,主要用来声明ADO控件unit Unit2;interfaceuses
Windows,
SysUtils,
DB,
ADODB,
ActiveX,
Classes;
var
MyCon: TADOConnection;implementationinitialization
CoInitialize(nil);finalization
CoUninitialize;
end.//然后你在窗体中就可以调用GetCon过程为dll的ADOConnection赋值了//如下:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations } public
{ Public declarations }
end;var
Form1: TForm1;
procedure GetCon(aCon: TADOConnection); stdcall; external 'Project2.dll' name 'GetCon';
procedure DisplayMessage; stdcall; external 'Project2.dll' name 'DisplayMessage';
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
GetCon(ADOConnection1);
DisplayMessage;
end;end.