利用Delphi實現支援表單的自訂函數

來源:互聯網
上載者:User

在利用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差不多。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.