(菜鸟问题)treeview的一个node用edittext以后怎么样获取修改后的text?
treeview1.selected
node.edittext修改items的名称后
Onedited ....
然后怎么获得这个修改后的text?
node.text依然是以前的text。
怎么办?
问题点数:20、回复次数:9Top
1 楼wondful(莫名)回复于 2003-07-02 14:01:11 得分 0
up!!!
help meTop
2 楼wondful(莫名)回复于 2003-07-02 14:11:56 得分 0
up again!!!
难道非要我用其他窗口输入,然后才能得到修改后的text吗?Top
3 楼wondful(莫名)回复于 2003-07-02 14:17:22 得分 0
进来看的不知道的也说声‘不知道’好吗?
别让我看着没任何反应,心里发慌!!!谢谢了
Top
4 楼hkbarton(→Beginner←)回复于 2003-07-02 14:21:55 得分 0
我马上写给你Top
5 楼wondful(莫名)回复于 2003-07-02 14:24:16 得分 0
是不是真的啊?Top
6 楼hkbarton(→Beginner←)回复于 2003-07-02 14:27:58 得分 0
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.item[0].EditText;
end;
procedure TForm1.ShowText;
begin
showmessage(TreeView1.Items.Item[0].text);
end;
procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: String);
begin
postmessage(self.Handle,WM_USER,0,0);
end;Top
7 楼hkbarton(→Beginner←)回复于 2003-07-02 14:30:41 得分 15
记住,上面的关键是postmessage这样在onedited事件触发后不是马上显示修改后的字(这样回是以前的),而是等待一个消息处理过程后再显示(这样就是改过的字),你只要定义一个消息处理过程,如上面的showtext函数,它的原形是
procedure ShowText(var msg:Tmessage);message WM_USER;Top
8 楼wondful(莫名)回复于 2003-07-02 14:36:18 得分 0
原来这么复杂,怪不得大家都不肯回答
大哥,谢谢了
结帖...Top
9 楼minercxy(Codewhy)回复于 2003-07-02 14:37:02 得分 5
设置全局变量mynode:Ttreenode;
在treeview 的Onediting中:
procedure TForm1.TreeView1Editing(Sender: TObject; Node: TTreeNode;
var AllowEdit: Boolean);
begin
mynode:=node;
end;
在treeview的OnEdited中,可以获得mynode.text即修改之前的text
在treeview的OnEdited之后(执行后),mynode.text为修改之后的text
Top



