Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
DLL文件中Form的使用

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站


主题:DLL文件中Form的使用(2)

贴出此文之前,未查阅过任何相似文章,如有相同,敬请见谅,并告示(注:本人曾就同一DLL中一窗体调用附窗体,如何实现之问题,请教过一前辈,但前辈笑笑未言),此为我在写动态元件时想到的一方法,结果通过,各位见谅。我为初学,而求学路见艰难,贴出只望对象我一样初学者给点帮助,无他。
library DLLPJ;

uses
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

exports
  ShowMainPRGWin;
 
begin
end.
----------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Unit2,Dialogs, StdCtrls;
  //1.附窗体单元加在此处
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Form2: TForm2; //2.附窗体定义在此处
// Declare the export function of windows of the main DLL
function ShowMainPRGWin(AHandle:THandle):BOOL;StdCall;

implementation

{$R *.dfm}
function ShowMainPRGWin(AHandle:THandle):BOOL;
begin
  Form1:=TForm1.Create(Application);
  Form2:=TForm2.Create(Application); //3.创建附窗体
  try
    Form1.ShowModal;
    Result:=False;
  Finally
    Form1.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.ShowModal;//4.在主窗体上调用附窗体
end;

end.
------------
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.
----------
//在其他窗体上调用DLL的定义及方法
procedure ShowMainPRGWin(AHandle:THandle);StdCall External 'DLLPJ.DLL';

ShowMainPRGWin(1);




相关文章

相关软件