用Delphi实现自动拉伸和根据不通的字段弹出不同的信息

假若我用treeview组件来做的话,我用sqlserver做数据库假设里边的父目录显示如下:我的好友初中同学高中同学就像是qq的显示用户机制一样然后我想实现在不同的列上... 假若我用treeview组件来做的话,我用sqlserver做数据库
假设里边的父目录显示如下:
我的好友
初中同学
高中同学
就像是qq的显示用户机制一样
然后我想实现在不同的列上单击右键弹出不同的菜单
如:我在"我的好友"上单击右键可以显示:添加我的好友
我在"初中同学"上单击右键可以显示:添加初中同学
请问各位高手应该怎么实现啊
或者可以用其他的什么组件可以是实现啊
谢谢各位,请大家帮帮忙 帮帮我 有没有参考代码
怎么确定鼠标单击的是哪一个啊
也就是能否获得单击位置的所在列的值啊
展开
 我来答
Sharon_QQ
2008-11-11 · TA获得超过492个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:372万
展开全部
你可以在点击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事件,在这里面可以写要双击后干什么。
e熊u
2008-11-12 · TA获得超过198个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:71.6万
展开全部
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.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式