知识大全 动态链接库编程(二)[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相关参考
DELPHI基础教程:动态链接库编程(二)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:动态链接库编程(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:动态链接库编程(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:动态链接库编程(一)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:动态链接库编程(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:动态链接库编程(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Delphi 中动态链接库(dll)的建立和使用[2]
Delphi中动态链接库(dll)的建立和使用[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在VC中链接动态链接库的方法简要说明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!方法一windo
Delphi中动态链接库两种调用方式的比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一动态链接
LINUX系统中动态链接库的创建与使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大家都知道