关于父、子窗体之间相互调用出错的求救(100分)

  • 主题发起人 主题发起人 c0371
  • 开始时间 开始时间
C

c0371

Unregistered / Unconfirmed
GUEST, unregistred user!
有三个窗体,一个父窗体,一个子窗体,单击子窗体,弹出一个新窗体,
好像在新窗体中不能调用子窗体中的任一构件值,例如,子窗体中有一treeview构件
当执行到 子窗体.treeview.selected.lever时就会出错,而如果不用父、子窗体时就会
一切正常。
 
我急呀!大吓救救我!再此多谢了
 
急急急……
 
你一定是刚学编程吧! 首先我想说,想你这样用法是不符合面向对象编程的,你怎么能
让一个窗体直接对另外一个窗体的构件进行操作呢? 如果这个新窗体需要返回值给子窗体,
那么只需要在新窗体定义属性接口,然后ShowModal之,最后返回给子窗体结果就OK了呗!
同样,子窗体对您你所谓的父窗体也是一样的。 如果你非要那样操作的话,那么只能让他
们两个单元互相Uses了,不过主窗体Uses子窗体应该在interface下面的Uses里面,子窗体
Uses主窗体应该在implementation后面手动写上Uses主窗体! 不过尽量不要这样作,因为
这样会导致程序很混乱 :(
 
unit 新窗体
implementation
uses 子窗体
 
treeview.selected.lever
这句错了啊,你可以这样
if treeview.selected<> nil then
treeview.selected.lever
 
宁柯大虾说的有道理哦
当子窗体需要调用父窗体的任意元素(如构件、变量等)应该在
子窗体里作事件,由父窗体来响应该事件,如果父窗体需要调用子窗体的任意元素,最好
是在子窗体里做公有函数让父窗体调用
 
其实,这都是因为Delphi和C++等编程语言不是强制面向对象的原因。我推荐您学习一点
Java,其实不一定为了学习Java语言,主要是学习一些Java的绝对的面向对象的理论,然后
你用Java的编程思想来理解Delphi和C++
 
呵...........
 
后退
顶部