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

請問MainMenu如何能動態產生下拉選單?

 
womting
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-04-10 15:26:27 IP:139.223.xxx.xxx 未訂閱
如提所述..... 我想依table所設之功能點,當主程式執行時自動產生 感激不盡...謝謝....
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-04-10 20:39:15 IP:61.219.xxx.xxx 未訂閱
var i:integer;
   MyMenu:array of TMenuItem;
begin
  setlength(MyMenu,table1.recordcount);
  table1.first;
  Root1.Clear;
  i:=0;
  while not table1.eof do
  begin
    MyMenu[i]:=TMenuItem.create(Application);
    MyMenu[i].Caption:=table1.fieldbyname('NAME').AsString;
    MyMenu[i].Visible:=true;
    Root1.add(MyMenu[i]);
    inc(i);
    table1.next;
  end;
end;
寫了一範例程式,讀出Table設定MainMenu見下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=17955 ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
womting
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-04-11 08:31:30 IP:139.223.xxx.xxx 未訂閱
謝謝前輩的指導..... 可否再請教一問題..... 若是已產生下拉選單了,那要去執行呢?..該如何做? 在做固定選單時不是有onclick這事件可以用嗎? 動態產生時就不知在哪可以找到.. 謝謝
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-04-11 17:20:33 IP:61.219.xxx.xxx 未訂閱
我又修改了程式加上onclick事件 請見    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=17955    
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Menus, Grids, DBGrids, Db, DBTables;    type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    MainMenu1: TMainMenu;
    Root1: TMenuItem;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure MenuItemClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;
  MyMenu:array of TMenuItem ;
implementation    {$R *.DFM}
procedure TForm1.MenuItemClick(Sender: TObject);
begin
   if (Sender is TMenuItem) then showmessage((sender as tMenuItem).caption );
end;    procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  setlength(MyMenu,table1.recordcount);
  table1.first;
  Root1.Clear;
  i:=0;
  while not table1.eof do
  begin
    MyMenu[i]:=TMenuItem.create(Application);
    MyMenu[i].Caption:=table1.fieldbyname('NAME').AsString;
    MyMenu[i].Visible:=true;
    MyMenu[i].OnClick:= MenuItemClick;
    Root1.add(MyMenu[i]);
    inc(i);
    table1.next;
  end;
end;    end.
~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
womting
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-04-12 07:52:46 IP:139.223.xxx.xxx 未訂閱
我瞭解了...謝謝
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-06-28 17:27:44 IP:202.3.xxx.xxx 未訂閱
深度歷險中,有訊光科技陳信宏寫的 TDynamicMenu 元件,可以依照資料庫內容動態產生 MenuItem,有source code可以參考 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-11-25 16:30:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!