知识大全 动态链接库编程(二)[2]

Posted

篇首语:世界上唯一拥有越多越好的东西就是知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 动态链接库编程(二)[2]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:动态链接库编程(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   利用DLLs实现窗体重用的一般步骤

  利用DLLs实现窗体重用的步骤是

   在集成开发环境(IDE)中 按自己的需要设计一个窗体

   编写一个用于输出的函数或过程 在该函数或过程中 设计的窗体被实例化

   重复步骤 直到完成所有重用窗体的设计

   打开工程文件 进行修改 以适应生成 dll文件的需要

  ( ) 把保留字program设为library;

  ( ) 从uses子句中去掉Forms单元

  ( ) 移去begin end之间的所有代码

  ( ) 在uses子句下 begin…end块之前 添加保留字exprots exports 后是输出函数名或过程名

   编译生成DLLs文件

   在其它应用程序中调用重用窗体

  重用窗体的调用同一般DLLs函数或过程的调用完全一致 不再赘述 读者可参看下面的例子

   窗体重用实例

  下面我们通过一个具体的实例来说明窗体重用的设计过程 我们在一个名为passform dll 的文件中储存了一个口令设置窗口和一个口令检查窗口 而后在一个Delphi 编写的程序和一个VB编写的程序中进行调用 事实证明这种方法是完全可行的

   窗体重用DLLs的设计

  窗体重用DLLs的设计依照( )中介绍的步骤进行 DLLs中的两个窗体 SetPassWordForm和GetPassWordForm分别用于设置和检查口令 它们的设计界面如图所示

  窗体类TSetPassWordForm定义了两个数据成员Verified和PassWord 用于记录口令确认状态和设置的口令 TSetPassWordForm的定义如下

  type

  TSetPassWordForm = class(TForm)

  Label : TLabel;

  Edit : TEdit;

  OKBtn: TBitBtn;

  CancelBtn: TBitBtn;

  procedure FormCreate(Sender: TObject)

  procedure Edit KeyPress(Sender: TObject; var Key: Char)

  private

   Private declarations

  Verified: Boolean;

  public

   Public declarations

  PassWord: PChar;

  end;

  窗口生成时 对数据成员和部件状态进行初始化

  procedure TSetPassWordForm FormCreate(Sender: TObject)

  begin

  Verified := False;

  PassWord := StrAlloc( )

  OKBtn Enabled := False;

  Label Caption := Please Input PassWord: ;

  end;

  按钮OKBtn在程序启动时Enabled属性设置为False 直到口令被正确设置后Enabled属性才恢复为True 这样就保证了只有口令被正确设置后 口令设置窗口才能正常关闭 否则只能按Cancel按钮取消

  在口令设置代码单元中定义了一个输出函数SetPassWord 用于生成口令设置窗口并返回设置的口令

  function SetPassWord(PWord: PChar) Boolean;

  var

  SetPassWordForm: TSetPassWordForm;

  begin

  Result := False;

  SetPassWordForm := TSetPassWordForm Create(Application)

  try

  with SetPasswordForm do

  if ShowModal = mrOK then

  begin

  StrCopy(PWord StrUpper(Password))

  Result := True;

  end;

  finally

  SetPasswordForm Free;

  end;

  end;

  口令成功设置 把PassWord的值拷贝给PWord输出 并返回True 应该注意的是由于 PWord本身就是指针类型 指向一个字符串的地址 因而虽然PWord用于输出 但在参数表中仍为传值参数 而不是传址参数 另外调用函数StrCopy 要求PWord在传入前已分配内存 否则会导致一个一般保护错 try…finally用于保护窗口所占用内存资源在任何情况下都能正常释放 读者可参看第十二章

cha138/Article/program/Delphi/201311/25204

相关参考

知识大全 动态链接库编程(二)[4]

DELPHI基础教程:动态链接库编程(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 动态链接库编程(二)[1]

DELPHI基础教程:动态链接库编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 动态链接库编程(一)[2]

DELPHI基础教程:动态链接库编程(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 动态链接库编程(一)[4]

DELPHI基础教程:动态链接库编程(一)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 动态链接库编程(一)[3]

DELPHI基础教程:动态链接库编程(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 动态链接库编程(一)[1]

DELPHI基础教程:动态链接库编程(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Delphi 中动态链接库(dll)的建立和使用[2]

Delphi中动态链接库(dll)的建立和使用[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 在VC中链接动态链接库的方法简要说明

在VC中链接动态链接库的方法简要说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!方法一windo

知识大全 Delphi中动态链接库两种调用方式的比较

Delphi中动态链接库两种调用方式的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一动态链接

知识大全 LINUX系统中动态链接库的创建与使用

LINUX系统中动态链接库的创建与使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家都知道