用Delphi实现自动拉伸和根据不通的字段弹出不同的信息
假若我用treeview组件来做的话,我用sqlserver做数据库假设里边的父目录显示如下:我的好友初中同学高中同学就像是qq的显示用户机制一样然后我想实现在不同的列上...
假若我用treeview组件来做的话,我用sqlserver做数据库
假设里边的父目录显示如下:
我的好友
初中同学
高中同学
就像是qq的显示用户机制一样
然后我想实现在不同的列上单击右键弹出不同的菜单
如:我在"我的好友"上单击右键可以显示:添加我的好友
我在"初中同学"上单击右键可以显示:添加初中同学
请问各位高手应该怎么实现啊
或者可以用其他的什么组件可以是实现啊
谢谢各位,请大家帮帮忙 帮帮我 有没有参考代码
怎么确定鼠标单击的是哪一个啊
也就是能否获得单击位置的所在列的值啊 展开
假设里边的父目录显示如下:
我的好友
初中同学
高中同学
就像是qq的显示用户机制一样
然后我想实现在不同的列上单击右键弹出不同的菜单
如:我在"我的好友"上单击右键可以显示:添加我的好友
我在"初中同学"上单击右键可以显示:添加初中同学
请问各位高手应该怎么实现啊
或者可以用其他的什么组件可以是实现啊
谢谢各位,请大家帮帮忙 帮帮我 有没有参考代码
怎么确定鼠标单击的是哪一个啊
也就是能否获得单击位置的所在列的值啊 展开
2个回答
展开全部
你可以在点击TreeView的时候,检查一下单击的是我的好友,还是初中同学,或者是高中同学,判断完了把右键PopupMenu重新赋值就可以了(你可以分别建三个不同的PopupMenu)。
procedure TMainForm.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected.Text ='我的好友' then
TreeView1.PopupMenu := PopupMenu1;
if TreeView1.Selected.Text ='初中同学' then
TreeView1.PopupMenu := PopupMenu2;
if TreeView1.Selected.Text ='高中同学' then
TreeView1.PopupMenu := PopupMenu3;
end;
TreeView有OnDblClick事件,在这里面可以写要双击后干什么。
procedure TMainForm.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected.Text ='我的好友' then
TreeView1.PopupMenu := PopupMenu1;
if TreeView1.Selected.Text ='初中同学' then
TreeView1.PopupMenu := PopupMenu2;
if TreeView1.Selected.Text ='高中同学' then
TreeView1.PopupMenu := PopupMenu3;
end;
TreeView有OnDblClick事件,在这里面可以写要双击后干什么。
展开全部
Q: 怎么确定鼠标单击的是哪一个啊 ?
A: treeview1.Selected;
-------------------------------------------------------
1、在窗口上放一个treeview1, popupmenu1;
2、pas文件代码如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
PopupMenu1: TPopupMenu;
procedure PopupMenu1Popup(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure menuitemclick(Sender: TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
curNode:ttreenode;
begin
curNode:=treeview1.Selected;
if curNode<>nil then begin
popupmenu1.Items[0].Enabled:=true;
popupmenu1.Items[0].Caption:='添加'+ curNode.Text;
end else begin
popupmenu1.Items[0].Enabled:=false;
popupmenu1.Items[0].Caption:= '没有选中内容';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
menuitem:tmenuitem;
begin
treeview1.RightClickSelect:=true;
treeview1.PopupMenu:= popupmenu1;
treeview1.Items.Clear;
treeview1.Items.AddChild(nil,'我的好友');
treeview1.Items.AddChild(nil,'初中同学');
treeview1.Items.AddChild(nil,'高中同学');
popupmenu1.Items.Clear ;
menuitem:=tmenuitem.Create(self);
menuitem.OnClick:=menuitemclick;
popupmenu1.Items.Add(menuitem);
end;
procedure TForm1.menuitemclick(Sender: TObject);
begin
application.MessageBox(pchar((sender as tmenuitem).Caption),'',mb_OK);
end;
end.
A: treeview1.Selected;
-------------------------------------------------------
1、在窗口上放一个treeview1, popupmenu1;
2、pas文件代码如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
PopupMenu1: TPopupMenu;
procedure PopupMenu1Popup(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure menuitemclick(Sender: TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
curNode:ttreenode;
begin
curNode:=treeview1.Selected;
if curNode<>nil then begin
popupmenu1.Items[0].Enabled:=true;
popupmenu1.Items[0].Caption:='添加'+ curNode.Text;
end else begin
popupmenu1.Items[0].Enabled:=false;
popupmenu1.Items[0].Caption:= '没有选中内容';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
menuitem:tmenuitem;
begin
treeview1.RightClickSelect:=true;
treeview1.PopupMenu:= popupmenu1;
treeview1.Items.Clear;
treeview1.Items.AddChild(nil,'我的好友');
treeview1.Items.AddChild(nil,'初中同学');
treeview1.Items.AddChild(nil,'高中同学');
popupmenu1.Items.Clear ;
menuitem:=tmenuitem.Create(self);
menuitem.OnClick:=menuitemclick;
popupmenu1.Items.Add(menuitem);
end;
procedure TForm1.menuitemclick(Sender: TObject);
begin
application.MessageBox(pchar((sender as tmenuitem).Caption),'',mb_OK);
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询