form1中,有个treeview1,点击树的某节点,弹出另外一个窗体form2,form1中选中的节点的信息传递给form2,form2可以修改这个树的节点的相关内容.如果有修改,关闭form2后,form1树的节点的内容也相应的改掉.不知道怎么传递变量操作?(不要用全局变量.模式form2的窗体是在动态中建立的.)
我用函数来传递,大概思路如下
在form1的按钮中
........
if treeview1.Selected<>nil then
form2:=tform2.Create(Application);
treeview1.Selected.Text:=frm_danwei.updatenode(nodeid);
在form2中,
var tempnodeid:string //用以接受form1传过来的变量,以便在form2中应用
class function tform2.updatenode(var nodeid:string):string;
begin
with self.Create(Application) do
begin
try
nodeid:=nodeid;
ShowModal;
result:=edit2.Text; //edit2中包含需要传回到form1中的那个节点的内容.
finally
free;
end;
end;
end;现在发现只能修改一次,在换个节点修改第就会出错.报错"read of adderss 00000000 "
刚学delphi,不知这种变量传递的问题该怎么做? 请指教...
我用函数来传递,大概思路如下
在form1的按钮中
........
if treeview1.Selected<>nil then
form2:=tform2.Create(Application);
treeview1.Selected.Text:=frm_danwei.updatenode(nodeid);
在form2中,
var tempnodeid:string //用以接受form1传过来的变量,以便在form2中应用
class function tform2.updatenode(var nodeid:string):string;
begin
with self.Create(Application) do
begin
try
nodeid:=nodeid;
ShowModal;
result:=edit2.Text; //edit2中包含需要传回到form1中的那个节点的内容.
finally
free;
end;
end;
end;现在发现只能修改一次,在换个节点修改第就会出错.报错"read of adderss 00000000 "
刚学delphi,不知这种变量传递的问题该怎么做? 请指教...
楼主的写法很强悍,呵呵,虽然说没错,但一般人都看不懂
比如主窗体传两个变量到子窗体,子窗体修改后再把这两个变量传回到主窗体.
怎么做的?应该是经常碰到的问题啊.
不要用到全局变量(很多地方都不推荐用全局变量阿),也不要重新加载一下form1的treeview,(这样很慢),另外子窗体是动态生成的.最终是要释放掉的.像这种情况,怎么做的阿?
有会的吗
Show的那种加事件,主窗体在事件中使用事件参数得到需要的信息
看看 应该有帮助