动态菜单的创建 |
答題得分者是:william
|
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
有如下的代码: var
Temp:string;
j:integer;
{动态的创建菜单}
PopupMenu1:TPopupMenu;
pos:Tpoint;
begin
{主菜单的值}
Temp:='xxx'; {动态产生菜单}
PopupMenu1 := TPopupMenu.Create(Self);
PopupMenu1.AutoHotkeys:=maManual; //此句代码为不让系统自动设置快捷键}
with PopUpMenu1.Items do
begin
{主菜单的生产}
Add(NewItem(Temp,0,False,True,MyClick,0,'MenuItem0'));
Add(NewLine); // 增加一个分割棒 {从数据表中查询与主菜单相关的数据相}
sqlstr:='select sm from dbo.dict where name like'+#$27+Temp+'%'+#$27;
dic_Query.Close;
dic_Query.SQL.Clear;
dic_Query.SQL.Add(sqlstr);
dic_Query.Open; {找到后,依次添加到主菜单的子菜单中}
if not dic_Query.IsEmpty then
begin
j:=0;
Dic_Query.First;
while not Dic_Query.Eof do
begin
inc(j); {添加子菜单}
........< >< >< >........ >< >< >< >
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Hope you can get some idea in creating submenu
< class="code">var
M1,M2: TMenuItem;
begin
with PopupMenu1.Items do begin
M1 := TMenuItem.Create(PopupMenu1);
M1.Caption := '1';
Add(M1);
end;
M2 := TMenuItem.Create(PopupMenu1);
M2.Caption := '1.1';
M1.Add(M2);
end;
|
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
var M1,M2: TMenuItem; begin with PopupMenu1.Items do begin M1 := TMenuItem.Create(PopupMenu1); M1.Caption := '1'; Add(M1); end; M2 := TMenuItem.Create(PopupMenu1); M2.Caption := '1.1'; M2.OnClick := self.OnMenuClick; M1.Add(M2); end;BTW, you can also make use of the TMenuItem.Action property. |
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |