thisformset.addobject("form1","form")
with thisformset.form1
.caption="查询结果"
.width=600
.height=400
.Autocenter=.t.
.controlbox=.f.
endwith
thisformset.form1.addobject("cmdReturn1","cmdReturn")
with thisformset.form1.cmdReturn1
.top=360
.left=270
endwith
thisformset.form1.addobject("grid1","gird")
with thisformset.form1.grid1
.Recordsourcetype=1
.Recordsource="tempview"
.top=10
.left=20
.height=300
.width=560
endwith
**************************************************************
在程序的最后加入:
*********************************************
Define class cmdReturn as commandbutton
caption="返回"
procdure click
thisform.release
endproc
enddefine
*********************************************
这下总可以了吧?运行程序,结果出现对话框"在事件或方法中不能嵌套类定义!"。我@#$%&*....什
么嘛!教科书、帮助文件中的示例prg都是这么写的啊!
不过好在还有办法,我手工建立一个类总行了吧!
在类库mybut中新建一个按钮类cmdReturn,设置它的cation属性为"返回",click事件代码为
thisform.release。在上面的代码前插入set Classlib to mybut additive(注意:如果不加additive参
数,将关闭所有之前打开的类库!),然后将最后的类定义语句Define...EndDefine全部删除。
运行,新表单出现!且慢,这个表单上怎么什么东西都没有?:-((
打开调试器,在"局部"窗口中察看,发现明明有cmdReturn1、Grid1对象啊!怎么回事?仔细察看他
们的每个属性,发现原来它们的visible属性都为false!
原来,我们平常看到的帮助中的示例都是prg文件,在这些文件中用addobject()方法向表单添加的对
象在显示表单后都是可见的。而在表单的scx文件中使用addobject()方法建立的任何东西,其visible属
性都为false!
本质上,用createobject()、addobject()方法建立的对象,其实只是在内存中建立了一个对象变量,
必须再用语句使它们实例化。比如,我们常用的mainform.show语句就是如此,没
| 对此文章发表了评论 |
