delphi问题
请DELPHI高手帮我写段代码,要求简单带注释,因为我是小菜。代码大概意思是,写一个EXE小程序,打开一个带有窗体的DLL文件,这个带有窗体的文件可以读取D盘的123.I...
请DELPHI高手帮我写段代码,要求简单带注释,因为我是小菜。
代码大概意思是,写一个EXE小程序,打开一个带有窗体的DLL文件,这个带有窗体的文件可以读取D盘的 123.INI文件。
就是DLL文件代码,和一个主程序代码,要简单的能通过的,我不能排除错误,我是刚学的菜鸟。谢谢! 展开
代码大概意思是,写一个EXE小程序,打开一个带有窗体的DLL文件,这个带有窗体的文件可以读取D盘的 123.INI文件。
就是DLL文件代码,和一个主程序代码,要简单的能通过的,我不能排除错误,我是刚学的菜鸟。谢谢! 展开
3个回答
展开全部
我编写了一个能想到的最精简的代码给你:首先建立一个DLL文件,共包含两个文件(DllFrm.dpr,Unit1.pas)如下:
<DllFrm.dpr>:
library DllFrm;
uses
SysUtils,Classes,unit1; //引用UNIT1单元,放置窗体程序
{$R *.res}
exports
ShowForm; //DLL文件向外提供打开窗体的接口函数名称
begin
end.
<Unit1.pas>:
unit Unit1;
interface
uses
Windows, SysUtils, Classes, Forms,inifiles;
type
TForm1 = Class(TForm);
procedure ShowForm;stdcall;//声明打开窗体的接口函数
implementation
{$R *.dfm}
procedure ShowForm;stdcall; //打开窗体的接口函数的具体内容
var
Inifile:Tinifile; //声明一个INI文件变量
begin
with TForm.Create (Application) do //在运行时建立一个新窗体
begin
Inifile:=Tinifile.Create('D:\123.ini');//打开inifile
Caption:=Inifile.readstring('Frm','Caption',''); //读取INI文件内的字符信息
Inifile.Free; //释放inifile
ShowModal; //模式显示此新建的窗体
Free; //当窗体关闭后,注销此窗体
end;
end;
end.
编译后生成:<DLLMem.dll>
再新建立一个工程,用于调用此DLL,共有两个文件(LoadDllFrm.dpr和Unit2),在窗体Form1上添加一个按钮用于调用并打开DLL里面的窗体,具体代码如下:
<LoadDllFrm.dpr>:
program LoadDllFrm;
uses
Forms,
Unit2 in 'Unit2.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
<Unit2.pas>:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
procedure ShowForm;stdcall;external 'DllFrm.dll';//声明装入DLL中的函数,用于打开DLL中的窗体
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowForm;//调用DLL函数,打开窗体
end;
end.
<d:\123.ini的内容如下>
[Frm]
Caption=装载成功
<DllFrm.dpr>:
library DllFrm;
uses
SysUtils,Classes,unit1; //引用UNIT1单元,放置窗体程序
{$R *.res}
exports
ShowForm; //DLL文件向外提供打开窗体的接口函数名称
begin
end.
<Unit1.pas>:
unit Unit1;
interface
uses
Windows, SysUtils, Classes, Forms,inifiles;
type
TForm1 = Class(TForm);
procedure ShowForm;stdcall;//声明打开窗体的接口函数
implementation
{$R *.dfm}
procedure ShowForm;stdcall; //打开窗体的接口函数的具体内容
var
Inifile:Tinifile; //声明一个INI文件变量
begin
with TForm.Create (Application) do //在运行时建立一个新窗体
begin
Inifile:=Tinifile.Create('D:\123.ini');//打开inifile
Caption:=Inifile.readstring('Frm','Caption',''); //读取INI文件内的字符信息
Inifile.Free; //释放inifile
ShowModal; //模式显示此新建的窗体
Free; //当窗体关闭后,注销此窗体
end;
end;
end.
编译后生成:<DLLMem.dll>
再新建立一个工程,用于调用此DLL,共有两个文件(LoadDllFrm.dpr和Unit2),在窗体Form1上添加一个按钮用于调用并打开DLL里面的窗体,具体代码如下:
<LoadDllFrm.dpr>:
program LoadDllFrm;
uses
Forms,
Unit2 in 'Unit2.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
<Unit2.pas>:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
procedure ShowForm;stdcall;external 'DllFrm.dll';//声明装入DLL中的函数,用于打开DLL中的窗体
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowForm;//调用DLL函数,打开窗体
end;
end.
<d:\123.ini的内容如下>
[Frm]
Caption=装载成功
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询