号外,号外,这是否是Delphi的But?(超级严重)

Linux2001 2002-04-03 08:07:34
有两个窗口,上面都有TTreeView控件,我的目的是让它们数据同步,就是无论在哪个窗口重更改了TTreeView的节点,都会反映到另一个窗口的TTreeView中,但是我在TForm2.FormClose事件中加入以下代码:Form1.TreeView1.Items.Assign(Form2.TreeView1.Items);编译运行,如果关闭Form2就报错,内容是:
Project Fun.exe raised exception class EAccessViolation with message 'Access Violatio at Address 004C9AB7 in module 'fun.exe'. Read of address 000003A0'.process Stopped use step or run to continue.
但是我新建工程,按照这些步骤同样是实现两个窗口中的两个树型控件节点同步的问题时就可以,而且方法全部一样....以上错误发生时,断点停留在Form1.TreeView1.Items.Assign(Form2.TreeView1.Items);这里
...全文
44 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
wylove 2002-04-04
  • 打赏
  • 举报
回复
我同意你的观点,Delphi确实存在一些内存分配等方面的让人难以捉摸的问题,我也曾经遇到一些类似的问题!
Linux2001 2002-04-04
  • 打赏
  • 举报
回复
xzgyb(老达摩)兄,不可以的是我的一个程序,那个东西牵涉的东西比较多,原谅我不能发给你,:-P,但是问题我已经搞定了,谢谢大家,但是就是还不知道原因
xzgyb 2002-04-04
  • 打赏
  • 举报
回复
呵呵,Linux2001兄
那哪个是不可以的
Linux2001 2002-04-04
  • 打赏
  • 举报
回复
对啊, xzgyb(老达摩) 兄,你一定没有看我的信的内容吧,我发的是楼上的二位说不能在onclose中写代码的例子,其实是可以,怎么可能不可以!我的那个程序昨天搞定了,但是原因没有找到
xzgyb 2002-04-04
  • 打赏
  • 举报
回复
Linun2001
我运行你的程序完全没有问题啊
Linux2001 2002-04-04
  • 打赏
  • 举报
回复
问:奇怪问题,为什么我的窗口不能使用Form1.ShowModal;而只能Form1.Show
xzgyb 2002-04-04
  • 打赏
  • 举报
回复
OK,明白
Linux2001 2002-04-03
  • 打赏
  • 举报
回复
你是否是说关闭Form2的时候保存一个树型控件的文件让Form1上的树型控件去读,呵呵,试验过了,仍然是那行英语,我真的要崩溃了
zx126 2002-04-03
  • 打赏
  • 举报
回复
TreeView的节点创建有三种可能。1设计时创建;2运行时从节点属性文件中载入(这个文件可用文本文件打开浏览);3运行时从数据库中载入。

你可以用的二种方法,处理:
在每次Form2.Close中保存节点属性文件,并重新装在Form1内的TreeView1;




Linux2001 2002-04-03
  • 打赏
  • 举报
回复
TO:zzllabc(龙)
试验过了,可以在新建工程中通过,但是就是无法在Fun.exe中通过,系统的错误就是那些英文,然后断点停在Form1.TreeView1.add(...);
xunji 2002-04-03
  • 打赏
  • 举报
回复
AO_XSF@HOTMAIL.COM
抱朴守拙 2002-04-03
  • 打赏
  • 举报
回复
xixi.笨办法了
抱朴守拙 2002-04-03
  • 打赏
  • 举报
回复
每当更改Form2的TreeView时,同步更改Form1的TreeView
example:
Form2.TreeView1.Add(...);
然后
Form1.TreeView1.add(...);
武稀松 2002-04-03
  • 打赏
  • 举报
回复
woodheadwang@163.com
Linux2001 2002-04-03
  • 打赏
  • 举报
回复
to: mercedes() and mshawk(憨憨)我这里有一个试验,我把那句代码写到Form2.FormClose中,程序完全可以通过,但是加入到我的程序中就是无法通过。。。。。而且就是说Form1.TreeView1.Items.Assign(Form2.TreeView1.Items);这句出错,如果你们不行可以留下邮箱,我把试验发给你们
MSHawk 2002-04-03
  • 打赏
  • 举报
回复
这就不清楚了。把全部代码贴出来看看吧。
yuefengzzh 2002-04-03
  • 打赏
  • 举报
回复
你可真有研究精神呀
佩服!
Linux2001 2002-04-03
  • 打赏
  • 举报
回复
但是写在FormCloseQuery这里也是出错啊
xunji 2002-04-03
  • 打赏
  • 举报
回复
把你的FORM2的代码贴出来吧
MSHawk 2002-04-03
  • 打赏
  • 举报
回复
不能在FormClose事件里写这些代码。因为当执行到此时间的时候,此Form内的子控件都已经被释放了,你在FormCloseQuery里写吧。
加载更多回复(8)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧