線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1759
推到 Plurk!
推到 Facebook!

如何動態製作MainMenu?

答題得分者是:領航天使
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-04 10:40:34 IP:61.218.xxx.xxx 未訂閱
各位Delphi高手、先進們: Table1:Header Header_Caption ===================== 1 基本作業 2 表單作業 Table2:Header Footer Footer_Caption ============================ 1 1 客戶資料 1 2 廠商資料 2 1 進貨作業 2 2 銷貨作業 MainMenu如下所示: -------------------- 基本作業 表單作業 客戶資料 進貨作業 廠商資料 銷貨作業 -------------------- 如何利用以上二個Table在FormCreate製作MainMenu?感激不盡!!
------
~小弟淺見,參考看看~
Skyer
高階會員


發表:43
回覆:111
積分:120
註冊:2002-04-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-04 11:19:43 IP:61.217.xxx.xxx 未訂閱
我在 Help 裡的 TMainMeni->Items->TMenuItem->Add() 找到下面 Ex 您的問題應該可以從 Help 裡找到..    This example assumes that the main form of the application has a main menu with a menu item. The following code adds a separator, and the name of all forms to the menu.
var
  NewItem: TMenuItem;
  I : integer;
begin
  { first create the separator }
  NewItem := TMenuItem.Create(Self);
  NewItem.Caption := '-';
  { add the new item to the Windows menu }
  Windows.Add(NewItem);
  { now create and add a menu item for each form }
  for  I := 0 to Screen.FormCount-1 do
  begin
    NewItem := TMenuItem.Create(Self);
    NewItem.Caption := Screen.Forms[I].Name;
    Windows.Add(NewItem);      end;    end;
-- Skyer
------
--
Regards,
Skyer
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-04 13:50:35 IP:61.219.xxx.xxx 未訂閱
假設Form上已有一MainMenu1, 但無任何MenuItem
TForm1=class(TFOrm)
..
  procedure MenuClick(Sender:TObjcet);//自行加一procedeure以處理動態menuitem之click
public
...
end;    procedure TForm3.Button2Click(Sender: TObject);
var m,m2:TMenuItem;
begin
  table1.first;
  while not Table1.eof do begin
    m:=TMenuItem.Create(self); 
    MainMenu1.Items.add(m);
    m.Caption:=table1.fieldbyname('Header_Caption').AsString;
    table2.filtered:=False;
    table2.filter:='Header=' QuotedStr(Table1.fieldbyname('Header').asstring);
    table2.filtered:=True;
    table2.first;
    while not table2.eof do begin
      m2:=TMenuItem.Create(self);
      m2.Caption:=table2.fieldbyname('Footer_Caption').AsString;
      m2.name:='N' table2.fieldbyname('Header').AsString table2.fieldbyname('Footer').AsString;
//menuitem之name不是必要, 只為了好辨別
      m.Add(m2);
      m2.onclick:=MenuClick;  //將menu Click時之Event接向此
      Table2.next;
    end;
    table1.Next;
  end;
end;    procedure TForm3.MenuClick(Sender: TObject);
begin
//只為Demo用, 顯示Menu Name, 你可以於此處理所有MenuClick
  showmessage(TComponent(Sender).name);
end;
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-04 14:32:17 IP:192.168.xxx.xxx 未訂閱
引言: 各位Delphi高手、先進們: Table1:Header Header_Caption ===================== 1 基本作業 2 表單作業 Table2:Header Footer Footer_Caption ============================ 1 1 客戶資料 1 2 廠商資料 2 1 進貨作業 2 2 銷貨作業 MainMenu如下所示: -------------------- 基本作業 表單作業 客戶資料 進貨作業 廠商資料 銷貨作業 -------------------- 如何利用以上二個Table在FormCreate製作MainMenu?感激不盡!!
本站有一個範例程式請先參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=17955 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-11-22 21:24:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!