用Delphi製作動態菜單

來源:互聯網
上載者:User
所謂動態菜單是指功能表項目隨著程式的操作變化而變化。現在,我們用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;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.