treeview 控件 onEdited 结束后执行...(80光洋)!(80分)

  • 主题发起人 主题发起人 zhaowx
  • 开始时间 开始时间
Z

zhaowx

Unregistered / Unconfirmed
GUEST, unregistred user!
具体讲我的程序功能是这样的:我利用 Treeview 控件制作了一个具有client/server
结构的文件管理程序,在client端,在一个文件夹里建一个子文件夹。做法是先添加一个
子接点(NODE),使其处于Node.edittext,填写名称(这时处于EDIT状态),填写完后
“提交”给服务端(利用onEdited事件),若服务端返回消息:不能创建文件夹,就将刚
添加的文件夹删除。

以上“提交”后的动作我是放在onEdited事件中完成的,错误是在这个事件中不能进行:
Item.Delete(Node);,因为onEdited事件的操作对象就是该Node.我的DELETE 动作只能
在 onEdited 动作结束后执行, 如何实现呢?
 
其实你可以这样做,你做一个'新增'窗口,输入完后提交,由服务端返回消息进行下一步操作
如果不能创建文件夹就提醒用户,如果可以创建就ADD节点就OK了!
 
看来只能采用一个刷新treeview的做法了
 
怎么提了两次?
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=360394
这样你试一下吧

直接肯定是不行了(没完成EDIT过程就想删除NODE?应该在完成后删除)。不过可以变通一下

var
Form1: TForm1;
ANode:TTreeNode; //用于存当前NODE,如果你的提交过程慢,应该设个动态NODE数组

implementation

{$R *.DFM}

procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: String);
begin
ANode:=Node;
end;

procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject;
Node: TTreeNode);
begin
if ANode<>nil then
ANode.Delete;
end;

 
to menxin:
提了两次是因为上次没有人到解决的办法。
 
to menxin:
thank you for you answer!
 
后退
顶部