所謂動態選單是指選單項隨著程式的操作變化而變化。現在,我們用delphi來實現這一功能,具體步驟如下:
1.首先,確定動態選單的資料**,即要確定動態選單標題是來自windows的系統登錄檔,還是來自乙個資料庫,或者是來自乙個子目錄,主要由程式的功能而定。這裡假設主視窗名為mainform,上面已有主選單,其動態選單的資料來源是乙個string(字串)型別的變數,名稱為submenuitemsource。
2.確定生成的動態選單的功能,即定義動態選單的onclick()事件,例如,動態選單標題來自乙個磁碟檔名時,那麼程式在響應onclick()事件時,可能的操作是要開啟選中的檔案。因此,對選單所在的主視窗模組的單元程式的數,據我們需要定義type後新增乙個自定義的事件myclick()。
然後,需要編寫如下myclick()事件的具體內容:
procedure tmainform.myclick(sender: tobject);//動態選單onclick事件響應
begin
show.message(tmenuitem(sender).caption);//顯示選中的動態選單標題,
end;
這裡呼叫的showmessage標準例程(在dialogs.pas中)顯示tmenuitem(sender).caption,它就是選擇的選單項的caption,類似用tmenuitem(sender).name則是選擇選單項的name。
3.編寫程式將動態選單標題新增到指定的選單頂下,並將其與onclick()事件聯絡起來。將以下程式段新增到mainform的oncreate事件過程中,可在程式啟動時完成動態選單的動態生成:
procedure tmainform.formcreate(sender: tobject);
var
addsubitem:tmenuitem;
i:integer;
begin
for i:=0 to n do //n等於要新增的動態選單數目,需事先定義為數值型變數,並賦值
begin
addsubitem:= tmenuitem.create(self);
addsubitem.name := ′a′+inttostr(i);
addsubitem.caption := submenuitemsource; // 步驟1的submenuitemsource應先賦值
fileopenitem.add(addsubitem); //在名稱為fileopenitem的選單項下新增子選單
addsubitem.onclick:=myclick; // 步驟2的myclick(),自定義選單要響應的事件
end
end;
Delphi的動態選單實現
這裡所謂的動態選單是指選單項是變化的,它隨程式的操作變化而變化。例如在很多應用程式的 檔案 選單下列出了最近多少次曾經使用過的檔名,這是最常見的動態選單用法,microsoft word 的 檔案 選單就是一例。動態選單的使用為操作應用程式提供了極大的方便。用 delphi 編寫應用程式我們也可以實...
delphi 入門之《動態建立選單》
delphi 入門之 動態建立選單 由於在專案中用到動態建立選單的功能,簡單的記錄下,主要是根據json的配置檔案動態的建立選單,用到的有乙個json選單配置檔案,json轉換的工具類superobject,具體的 如下所示 1 json配置檔案 choj homeurl menuurl menu ...
用Delphi製作DLL的方法
用delphi製作dll的方法 一 dll的製作一般步驟 二 引數傳遞 三 dll的初始化和退出清理 如果需要初始化和退出清理 四 全域性變數的使用 五 呼叫靜態載入 六 呼叫動態載入 七 在dll建立乙個tform 八 在dll中建立乙個 ichildform 九 示例 十 delphi製作的dl...