当前位置:主页>销售管理软件> 列表

PopupMenu右键菜单小问题 找企业管理软件

库存管理软件版1楼: 窗体上有很多的Label,PopupMenu右键菜单有‘操作’这个选项,我想在某个Label上右键点击一下‘操作’,ShowMessage(所选的Label的Caption)
(每一个Label都已经与PopupMenu关联了)

2楼: type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
PopupMenu1: TPopupMenu;
N1111: TMenuItem;
procedure N1111Click(Sender: TObject);
procedure Label1MouseEnter(Sender: TObject);
procedure Label2MouseEnter(Sender: TObject);
procedure Label3MouseEnter(Sender: TObject);
private
{ Private declarations }
FLbName: String;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.N1111Click(Sender: TObject);
begin
if FLbName <> '''' then
begin
ShowMessage(FLbName);
end;
end;

procedure TForm1.Label1MouseEnter(Sender: TObject);
begin

FLbName:= ''Label1'';
end;

procedure TForm1.Label2MouseEnter(Sender: TObject);


begin
FLbName:= '''';

end;

procedure TForm1.Label3MouseEnter(Sender: TObject);
begin
FLbName:= '''';

end; 如企业管理软件

3楼: 只是个思路
“想在某个Label上右键点击一下‘操作’,ShowMessage(所选的Label的Caption)”
如果需要ShowMessage的Label少的话,就在这些label的onMouseLeave事件中将FlbName清空即可

4楼: [:)]先谢谢楼上的帮忙!!
我的控件还不少,请各位再想想办法,帮帮小弟

5楼: 如果Label多的话你可以定义一个过程LabMOuseEnter(此事件用于获得点的是哪个Label),每一个Label的OnMouseEnter都调用定义的过程LabMOuseEnter。
一个变量一个过程就可以了,实现方法如下:
TLab: TLabel; //定义TLabel变量用于存放点击的TLable
procedure LabMOuseEnter(Sender: TObject); //定义鼠标进入事件,用于获得TLable
procedure TForm1.LabMOuseEnter(Sender: TObject);
begin
TLab := sender as Tlabel ;
end;
//在弹出事件中显示Caption即可
procedure TForm1.N111Click(Sender: TObject);


begin
showmessage(TLab.Caption );
end;

6楼: 多人接受答案了。