基础有关问题连串问之:祖先定义的实例变量,赋值后,子孙类中执行代码仍是空object.什么原因啊

基础问题连串问之:祖先定义的实例变量,赋值后,子孙类中执行代码仍是空object.什么原因啊?
我定义了一个菜单m_main,并为其定义了一个datawindow类型的实例变量dw_1。
然后从m_main继承出来一个类m_ordinary,m_ordinary中的一些代码对dw_1进行操作。
然后又从m_ordinary继承一个菜单m_stock。

做一个窗口,使用菜单m_stock。在窗口的open事件中将窗口中的一个数据窗口赋值给m_stock.dw_1.
执行时会出错,错在m_ordinary中对dw_1进行操作的代码,错误内容是:引用了null object.

调试时的情况如下:
在m_ordinary出错的代码处:isnull(dw_1)为false,即dw_1不是null object.
dw_1前面的图标是"x+y=?",而不是object的图标,表示dw_1被当成了一个计算式,而不是一个object.

这是什么原因啊?

------解决方案--------------------
判断变量值是否为空用 isnull(变量) ,
判断对象是否存在用 isvalid(对象)

在菜单里定义:
datawindow dw_1 的话.

需要找个地方写: 
dw_1 = create datawindow

另外,建议在菜单里用Datastore 而不要用 datawindow


------解决方案--------------------
我知道以前陶清网有好几个比较好用的菜单代码,很有用,你去找找.
------解决方案--------------------
lz给些代码出来,看了半天都不知道程序怎么运行的
------解决方案--------------------
也没看懂,帮顶!
------解决方案--------------------
没赋值之前就执行祖先代码了?LZ不把代码贴上了不好分析
------解决方案--------------------
探讨
我是要用菜单操作窗口里的datawindow,所以在菜单里定义一个datawindow实例变量,然后把窗口里的datawindow控件赋值给菜单里的datawindow类型的实例变量。如果只是继承一次,是完全没有问题的,我有很多程序都是这样处理的。


------解决方案--------------------
最好是动态 设定对象 integer returns setDataWindow(DataWindow adw_obj)
idw_obj=adw_obj
return 1