程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi制作動態菜單

Delphi制作動態菜單

編輯:Delphi

所謂動態菜單是指菜單項隨著程序的操作變化而變化。現在,我們用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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved