使用DLL文件中封装的窗口
文章摘要:
编写软件时常常使用到DLL文件,本文就使用DLL文件中封装的窗口来说说Delphi中在DLL如何封装窗口,如何调用DLL中封装的窗口,及MDI-Child在DLL中载入并使用
一、在DLL中封装窗口
打开Delphi新建一个DLL工程,保存为usedll,生成代码 数据挖掘研究院
|
library usedll; 数据挖掘研究院 { Important note about DLL memory management: ShareMem must be the uses {$R *.res} begin |
新建一个窗体,添加一个Label和Button,设置如下: 数据挖掘研究院
| object Form1: TForm1 Left = 192 Top = 133 Width = 334 Height = 221 Caption = "DLL"#20013#20351#29992#31383#20307 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = "MS Sans Serif" Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 104 Top = 80 Width = 80 Height = 13 Caption = "DLL"#20013#20351#29992#31383#20307 end object Button1: TButton Left = 120 Top = 152 Width = 75 Height = 25 Caption = #30830#23450 TabOrder = 0 OnClick = Button1Click end end |
添加一过程:procedure LoadForm; export;
procedure LoadForm;
begin
Form1 := TForm1.Create(Application);
try
Form1.ShowModal;
finally
Form1.Free;
end;
end; 数据挖掘研究院
全部完整的代码: 数据挖掘研究院
|
library usedll; uses {$R *.res} end. |
|
unit Form_Unit; 数据挖掘实验室 interface uses type var implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); end. |
编译后生成usedll.dll文件,至此DLL文件就完成了 数据挖掘研究院
二、调用DLL中封装的窗口 数据挖掘研究院
新建一个工程,添加一个Button,窗体布局如下: 数据挖掘实验室
| object Form1: TForm1 Left = 192 Top = 133 Width = 336 Height = 222 Caption = "Form1" Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = "MS Sans Serif" Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 128 Top = 88 Width = 75 Height = 25 Caption = #25171#24320#31383#20307 TabOrder = 0 OnClick = Button1Click end end |
完整的代码如下: 数据挖掘研究院
|
unit Use_Unit; interface 数据挖掘实验室 uses var {$R *.dfm} 数据挖掘研究院 procedure TForm1.Button1Click(Sender: TObject); end. |
三、MDI-Child在DLL中载入并使用
如果是MDI-Child又如何在DLL中载入并使用呢,下面就这个问题说说使用DLL文件中封装的窗口。
新建一个DLL工程,保存为mdidll,再新建一个窗体,FormStyle设为fsMDIChild,如下:
object Form1: TForm1
Left = 192
Top = 133
Width = 344
Height = 234
Caption = "MDI"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
FormStyle = fsMDIChild
OldCreateOrder = False
Position = poDefault
Visible = True
OnClose = FormClose
PixelsPerInch = 96
TextHeight = 13
end 数据挖掘研究院
代码如下:
|
unit mdi_Unit; 数据挖掘研究院 interface uses type var {$R *.dfm} procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); end. |
|
library mdidll; uses procedure LoadChild(ParentApplication: TApplication; ParentForm: TForm); export; stdcall; begin procedure DLLUnloadProc(Reason: Integer); register; {$R *.res} |
编译后生成mdidll.dll文件。
使用DLL中的MDI-Child窗口如下:
新建一个工程,主窗口设置如下FormStyle设为fsMDIForm:
object Form1: TForm1
Left = 192
Top = 133
Width = 544
Height = 375
Caption = "Form1"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
FormStyle = fsMDIForm
Menu = MainMenu1
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object MainMenu1: TMainMenu
Left = 72
Top = 136
object N1: TMenuItem
Caption = #26032#24314"(&N)"
OnClick = N1Click
end
end
end
代码:
|
unit usemdi_Unit; interface 数据挖掘研究院 uses type implementation 数据挖掘研究院 {$R *.dfm} procedure TForm1.N1Click(Sender: TObject); end. 数据挖掘研究院 |
结束语:
到这里你应该会用Delphi调用DLL文件中封装的窗口了吧,如果还有不明白的话请与我联系(主页: http://yousoft.home.chinaren.com ,邮箱:yousoft@chinaren.com) 数据挖掘研究院

