日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用Delphi完成支持窗體的自定義函數

運用Delphi完成支持窗體的自定義函數

更新時間:2022-05-01 文章作者:未知 信息來源:網絡 閱讀次數:

在利用Delphi發開應用時,我們可以引用大量的控件,象VCL,OCX,也可以引用開發環境中提供的大量函數,如ShowMessage,Application.MessageBox等,正是這些資源極大的提高了應用的開發效率,但是,在具體的開發過程中,會產生這樣一種需求,即如何將參數傳遞給窗體,最終用戶操作窗體后返回具體值,應用程序再要根據此返回值作進一步的處理,就象Application.MessageBox一樣工作。對此,筆者經過實踐,終于通過自定義函數的形式找到了實現方法。下面讓我們以實現類似Application.MessageBox功能的函數實例,看看如何定義支持窗體的自定義函數。

---- 第一步,建立函數的操作窗體;

---- 在Delphi建立一空白窗體(form),然后加入如下控件,兩個按鈕Button與一個標簽Label。

Button1: TButton; Label1: TLabel; Button2: TButton;
---- 第二步,建立輸出函數;
---- 此函數為其他窗體具體調用的格式,我們就通過此函數來傳遞參數及返回窗體的操作結果。其形式為:

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

---- 其中,btn1,btn2準備接收兩個按鈕的標題,msg為顯示的提示信息,titleMsg為窗體的標明,并且,此函數的返回值為integer.

---- 注意:此聲明必須放在implementation語句之前,使其對外可見。

---- 第三步,實現輸出函數;

---- 具體代碼如下:

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;
---- 作為例子,只是最簡單的功能實現。
---- 最后一步,刪除建立此窗體時生成的代碼;

var frmShowMsg:TfrmShowMsg;
---- 下面讓我們看看如何使用上面實現的自定義函數。
---- 建立一個應用,通過delphi->File->New Application即可。

---- 然后,在此應用中加入剛才實現的單元文件。此時我們需要在Project Options中設定frmShowMsg為可用的窗體。用一個按鈕測試一下這個自定義函數ShowMsg。showMsg('正確','取消','真的退出程序嗎?','確認');

---- 運行,就可以看到支持窗體的自定義函數了,效果與Delphi中Application.MessageBox差不多。

---- 掌握此種實現方法后,我們就可以繼續構造出需多類似的通用函數,以完成不同的功能,如支持數據瀏覽的自定義函數,查看任意數據表等等。

---- 最后附完整的此自定義函數的程序清單:

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. 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 亚洲一本视频 | 伊人久久在线观看 | 日本三级香港三级久久99 | 日韩一二三 | 国产一区二区三区在线免费观看 | 久久免费福利视频 | 亚洲欧美日韩中文字幕在线一区 | 久久都是精品 | 国产福利区一区二在线观看 | 久久成人永久免费播放 | 天天干夜夜躁 | 色婷婷精品大全在线视频 | 日日干日日操 | 91久久国产| 午夜国产精品久久影院 | 不卡一级毛片免费高清 | 视频精品一区二区三区 | 91精品欧美一区二区三区 | 亚洲精品中文一区不卡 | 成人狠狠色综合 | 国产精品爱久久久久久久 | 亚洲天堂中文字幕在线 | 亚洲一区在线视频观看 | 婷婷综合亚洲 | 欧美怡红院免费的全部视频 | 波多在线播放 | www尤物| 国产成人99久久亚洲综合精品 | 欧美男同gay18视频免费 | 精品日韩视频 | 国产午夜精品福利视频 | 亚洲欧美一区二区三区综合 | 伊人久久综合网亚洲 | 日本爱爱免费视频 | 一级高清毛片免费a级高清毛片 | 亚洲欧美精品中字久久99 | 欧美视频亚洲视频 | 老司机精品视频一区二区 | 日韩深夜视频 | 日韩欧美激情 | 国产系列欧美系列日韩系列在线 |