我的窗体上有几个popmenu,分别为p1,p2,p3.
我把这些菜单的名称信息存放在一个表中的字段中,数据类型为字符串。
窗体上放置一个toolbutton,现在点击toolbutton 在不同条件下弹出不同的popmenu.
菜单的名称从表中可以取出,请问如何对toolbutton的popmenu进行动态赋值(p1,p2,p3)呢?
我把这些菜单的名称信息存放在一个表中的字段中,数据类型为字符串。
窗体上放置一个toolbutton,现在点击toolbutton 在不同条件下弹出不同的popmenu.
菜单的名称从表中可以取出,请问如何对toolbutton的popmenu进行动态赋值(p1,p2,p3)呢?
解决方案 »
- 为什么 treeview 不能多选
- 如何将一个数组写入DAT文件并规则的从DAT文件中依次读出?
- VBScript和DELPHI结合中的超级难题,脚本中调用一个执行时间很长的函数如何避免锁定系统.
- 这个为什么编译不通过?
- Delphi6 数学单元(math.pas)中的函数错误!!!
- 如何发布DELPHI程序
- 继续请教,关于《实现按 Enter 键后,光标跳到下一控件》Thanks
- 在文本框中如何实现?
- 一个相当怪的关于Delphi访问数据库的问题,很急!!!请高手进——
- delphi treeview的父节点图标怎么显示加号而不是箭头
- 怎样把一个字符串如“20050102030405”转换成TDBDateTimeEditEh控件显示出来的值?
- 菜鸟问题
p1.Items[1].Caption:='B';
... ...
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;type
TForm1 = class(TForm)
p1: TPopupMenu;
p2: TPopupMenu;
p3: TPopupMenu;
Button1: TButton;
p11: TMenuItem;
p21: TMenuItem;
p31: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
List: TList;
implementation{$R *.dfm}procedure LoadMenuByName(MenuName: string);
var
i: integer;
idx: integer;
begin
idx:=-1;
for i:=0 to List.Count-1 do
if MenuName=TPopupMenu(List.Items[i]).Name then idx:=i;
if idx<>-1 then TPopupMenu(List.Items[idx]).Popup(100,100);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
List:=TList.Create;
List.Add(p1);
List.Add(p2);
List.Add(p3);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
LoadMenuByName('p1');
end;end.