⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 093001_05.htm

📁 对于学习很有帮助
💻 HTM
字号:
<html>

<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>计算机世界日报:
利用Delphi实现支持窗体的自定义函数
</title>
<!--***********-->
</head>

<body bgcolor="#FFFFFF" >














<p><br>
<font color="#b904e8"><b><em><a href="class.htm">返回</a></em></b></font>
<center>
<font color="#0000c0"><h2>
利用Delphi实现支持窗体的自定义函数
</h2></font>
<h3>
吉林四平宏宝莱饮品有限公司
<br>于洪
</h3>
</center>
<p><font color="#ffffff">----</font>
在利用Delphi发开应用时,我们可以引用大量的控件,象VCL,OCX,也可以引用开发环境中提供的大量函数,如ShowMessage,Application.MessageBox等,正是这些资源极大的提高了应用的开发效率,但是,在具体的开发过程中,会产生这样一种需求,即如何将参数传递给窗体,最终用户操作窗体后返回具体值,应用程序再要根据此返回值作进一步的处理,就象Application.MessageBox一样工作。对此,笔者经过实践,终于通过自定义函数的形式找到了实现方法。下面让我们以实现类似Application.MessageBox功能的函数实例,看看如何定义支持窗体的自定义函数。

<p><font color="#ffffff">----</font>
<b>第一步,建立函数的操作窗体;</b>

<p><font color="#ffffff">----</font>
在Delphi建立一空白窗体(form),然后加入如下控件,两个按钮Button与一个标签Label。
<xmp>
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
</xmp>
<font color="#ffffff">----</font>
<b>第二步,建立输出函数;</b>
<p><font color="#ffffff">----</font>
此函数为其他窗体具体调用的格式,我们就通过此函数来传递参数及返回窗体的操作结果。其形式为:
<p><font color="#ffffff">----</font>
function ShowMsg(btn1, btn2, msg, titleMsg: string): Integer;
<p><font color="#ffffff">----</font>
其中,btn1,btn2准备接收两个按钮的标题,msg为显示的提示信息,titleMsg为窗体的标明,并且,此函数的返回值为integer.
<p><font color="#ffffff">----</font>
注意:此声明必须放在implementation语句之前,使其对外可见。

<p><font color="#ffffff">----</font>
<b>第三步,实现输出函数;</b>

<p><font color="#ffffff">----</font>
具体代码如下:
<xmp>
function ShowMsg(btn1, btn2, msg, 
titleMsg: string): Integer;
var frmshowMsg: TfrmShowMsg;
begin
  frmShowMsg := TfrmShowMsg.Create(Application);
//建立自定义函数使用的窗体
  with frmShowMsg do
  try
    button1.Caption := btn1;
    button2.Caption := btn2;
    Label1.Caption := msg;
    Caption := titleMsg;
    if ShowModal=mrOK then//显示窗体
      result:=1
    else
      result:=2;
  finally
    Free;//清除不再使用的窗体
  end;
end;
</xmp>
<font color="#ffffff">----</font>
作为例子,只是最简单的功能实现。
<p><font color="#ffffff">----</font>
<b>最后一步,删除建立此窗体时生成的代码;</b>
<xmp>
var
  frmShowMsg:TfrmShowMsg;
</xmp>
<font color="#ffffff">----</font>
下面让我们看看如何使用上面实现的自定义函数。
<p><font color="#ffffff">----</font>
建立一个应用,通过delphi->File->New Application即可。
<p><font color="#ffffff">----</font>
然后,在此应用中加入刚才实现的单元文件。此时我们需要在Project Options中设定frmShowMsg为可用的窗体。用一个按钮测试一下这个自定义函数ShowMsg。showMsg('正确','取消','真的退出程序吗?','确认');
<p><font color="#ffffff">----</font>
运行,就可以看到支持窗体的自定义函数了,效果与Delphi中Application.MessageBox差不多。

<p><font color="#ffffff">----</font>
掌握此种实现方法后,我们就可以继续构造出需多类似的通用函数,以完成不同的功能,如支持数据浏览的自定义函数,查看任意数据表等等。

<p><font color="#ffffff">----</font>
<b>最后附完整的此自定义函数的程序清单:</b>
<xmp>
unit udfForm;

interface

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

type
  TfrmShowMsg = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

function ShowMsg(btn1, btn2, msg, 
titleMsg: string): Integer;

implementation

{$R *.DFM}

function ShowMsg(btn1, btn2, msg, 
titleMsg: string): Integer;

var frmshowMsg: TfrmShowMsg;
begin
  frmShowMsg := TfrmShowMsg.Create(Application);
  with frmShowMsg do
  try
    button1.Caption := btn1;
    button2.Caption := btn2;
    Label1.Caption := msg;
    Caption := titleMsg;
    if ShowModal=mrOK then
      result:=1
    else
      result:=2;
  finally
    Free;
  end;
end;
end.
</xmp>


 



<p align="right"><small><em>中国计算机世界出版服务公司版权所有</em></small> 
<br>
</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -