用右键菜单更改ListView中的Item的名称(200分)

  • 主题发起人 主题发起人 hcq
  • 开始时间 开始时间
H

hcq

Unregistered / Unconfirmed
GUEST, unregistred user!
在ListView控件的界面中,两次单击它的Item可以在它的Item的地方出现一个方框,可以更改Item的Caption。就象资源管理器中通过两次单击文件名更改文件名那样。
现在我不但要有这样的效果,还要能够通过右键菜单实现,就象资源管理器的右键菜单上有一个“重命名”一样。
必须用ListView控件和TreeView控件。
 
容易得很,自己想想吧.
只是你还要保存到数据库里或文件里.

方法1.修改时实际上是UPDATE数据库然后重取数据画界面.
方法2.先修改界面显示,再写库.
 
放一个treeview设置readonly为true,建立弹出菜单和treeview的关系
将弹出菜单的autopopup属性设置为false;在相应过程中添加代码
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var ahit:Thittests;
begin
ahit:=treeview1.GetHitTestInfoAt(x,y);
if htonlabel in ahit then
popupmenu1.AutoPopup:=true
else popupmenu1.AutoPopup:=false;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
treeview1.ReadOnly:=false;
treeview1.Selected.EditText;
end;

procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: String);
begin
treeview1.ReadOnly:=true;
end;
 
在‘重命名’的过程中写如下代码:
Treeview1.Selected.EditText;
在Treeview1Edited事件中写如下代码:
if Trim(S)='' then S := Node.Text;
以上代码的前提是:Treeview1.ReadOnly:=False;

 
多人接受答案了。
 
后退
顶部