請問如何動態添加菜單的事件?謝謝。 |
答題得分者是:jimmy_wei
|
allen-86
一般會員 發表:28 回覆:44 積分:19 註冊:2008-02-01 發送簡訊給我 |
網絡上的例子大都是在一個form單元。我是把此功能放到一個公用的單元。
菜單可以加上了。但是菜單事件卻加不上,多謝各位指點。 unit Unit2; interface uses Forms,Menus; var fmainmenu:TMainMenu ; procedure CreateMenus(froms:TForm ); implementation // procedure CreateMenus(froms:TForm ); var Menuitems:TMenuItem; begin Menuitems:=TMenuItem.Create(froms); fmainmenu:=TMainMenu.Create(froms); Menuitems.Caption :='Fiels&F'; Menuitems.MenuIndex :=0; fmainmenu.Items.Add(Menuitems); end; end.
------
The empty vessels make the greatest sound. 編輯記錄
allen-86 重新編輯於 2009-01-08 20:53:00, 註解 無‧
|
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
ex:
private { Private declarations } procedure TextClick(Sender: TObject); procedure TForm1.TextClick(Sender: TObject); begin ShowMessage(TMenuItem(Sender).Caption); end; ===================引 用 allen-86 文 章=================== 網絡上的例子大都是在一個form單元。我是把此功能放到一個公用的單元。 菜單可以加上了。但是菜單事件卻加不上,多謝各位指點。 unit Unit2; interface uses Forms,Menus; var fmainmenu:TMainMenu ; procedure CreateMenus(froms:TForm ); implementation // procedure CreateMenus(froms:TForm ); var Menuitems:TMenuItem; begin Menuitems:=TMenuItem.Create(froms); fmainmenu:=TMainMenu.Create(froms); fmainmenu.OnClick:= TextClick; Menuitems.Caption :='Fiels&F'; Menuitems.MenuIndex :=0; fmainmenu.Items.Add(Menuitems); end; end. |
allen-86
一般會員 發表:28 回覆:44 積分:19 註冊:2008-02-01 發送簡訊給我 |
報錯:[Error] Unit2.pas(27): Undeclared identifier: 'forbidden'
到網上查了一下forbidden居然沒查到是做什麽用的。呵呵。 麻煩大哥再查看一下。 ===================引 用 jimmy_wei 文 章=================== ex: private { Private declarations } procedure TextClick(Sender: TObject); procedure TForm1.TextClick(Sender: TObject); begin ShowMessage(TMenuItem(Sender).Caption); end; ===================引 用 allen-86 文 章=================== 網絡上的例子大都是在一個form單元。我是把此功能放到一個公用的單元。 菜單可以加上了。但是菜單事件卻加不上,多謝各位指點。 unit Unit2; interface uses Forms,Menus; var fmainmenu:TMainMenu ; procedure CreateMenus(froms:TForm ); implementation // procedure CreateMenus(froms:TForm ); var Menuitems:TMenuItem; begin Menuitems:=TMenuItem.Create(froms); fmainmenu:=TMainMenu.Create(froms); fmainmenu.OnClick:= TextClick; Menuitems.Caption :='Fiels&F'; Menuitems.MenuIndex :=0; fmainmenu.Items.Add(Menuitems); end; end.
------
The empty vessels make the greatest sound. |
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
allen-86
一般會員 發表:28 回覆:44 積分:19 註冊:2008-02-01 發送簡訊給我 |
|
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
unit Unit2;
interface uses Forms, Menus, Dialogs; var fmainmenu:TMainMenu ; type TOBJ = class private { Private declarations } public { Public declarations } procedure CreateMenus(froms:TForm ); procedure ClickText(Sender: TObject); end; implementation // { TOBJ } procedure TOBJ.ClickText(Sender: TObject); begin ShowMessage(TMenuItem(Sender).Caption); end; procedure TOBJ.CreateMenus(froms:TForm ); var Menuitems:TMenuItem; begin fmainmenu:=TMainMenu.Create(froms); Menuitems:=TMenuItem.Create(fmainmenu); Menuitems.Caption :='ABC'; Menuitems.MenuIndex :=0; Menuitems.OnClick:= ClickText; fmainmenu.Items.Add(Menuitems); end; end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; type TForm1 = class(TForm) Button2: TButton; procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); var OBJ: TOBJ; begin OBJ:= TOBJ.Create; OBJ.CreateMenus(Form1); end; end. 看看吧....其實你在做下去一定還會發現.要增加子節點等等的問題...不過你試試吧 其實剩下的部份你自己try try就可以了..... |
allen-86
一般會員 發表:28 回覆:44 積分:19 註冊:2008-02-01 發送簡訊給我 |
|
allen-86
一般會員 發表:28 回覆:44 積分:19 註冊:2008-02-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |