标题:请教show方法中的(1或2)的用法及它与visibl属性两者用法的区别?
取消只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
结帖率:79.3%
已结贴  问题点数:20 回复次数:8 
请教show方法中的(1或2)的用法及它与visibl属性两者用法的区别?
现有二个代码,为什么要用show(1),为什么不能用show或show(2)或visibl=.t.,(用它们二个,程序闪一下没有了)
第一个:
form1=createobject("myform")
form1.show(1)      &&&为什么不能用show?  为什么不能用form1.visibl=.t.
define class myform as form
caption="我的表单"
procedure init
this.addobject("mylabel","label")
WITH THIS.MYLABEL

.caption="学生管理系统"
.fontsize=24
.fontname="楷体_GB2312"
.TOP=60
.LEFT=80
.AUTOSIZE=.T.
.VISIBLE=.T.
ENDWITH
ENDPROC
ENDDEF
---------------------------------
第二个
form1=createobject("form")
form1.caption="我的表单"
FORM1.SHOW(1)

form1.addobject("mylabel","label")
with form1.mylabel
.caption="学生管理系统"
.fontsize=24
.fontname="楷体_GB2312"
.TOP=60
.LEFT=80
.AUTOSIZE=.T.
.VISIBLE=.T.
ENDWITH
FORM1.SHOW(1)&&&这个放到上面去(用兰色标识)为什么不行?为什么不能用form1.visibl=.t.?
搜索更多相关主题的帖子: procedure 管理系统 label class 
2011-10-05 14:52
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
讲的深了一点,慢慢体会。下面的例子我完全照抄书中的。现有二个问题,
1.加了public myform 后,把myform.show(1)改为myform.visible=.t.后表单能出现,不会一闪而过。
2为什么表单的左上角不出现“使用 add object 向类中添加对象示例”,而出来的是另一个命令2的标题(command2)
public myform   &&原来书中的代码,如果不要这个公共变量,myform.show(1) 改为myform.visible=.t.,表单不能显示。
myform=createobject("form1")
myform.visible=.t.  &&这是原来书中的代码 ,加了public myform,表单显示。
*myform.show(1)    &&本人另加的,因开始时省略了public myform ,表单一闪而过,把myform.visible=.t.改为show(1)表单显示了。
define class form1 as form
  caption="使用 add object 向类中添加对象示例"&&&表单左上角不出来,而出来的是"command2"???

  add object command1 as commandbutton with;
  top=30
  left=10
  height=30
  width=90
  caption="command1"
 add OBJECT command2 as commandbutton with;
 top=60
 left=200
 height=30
 width=90
caption="command2"
proc command1.click

endproc
proc command2.click
messagebox("hi,您好!")
endproc
enddefine
enddefi

2011-10-05 16:32
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
我用vfp6与VFP9 SP2都试了,加了public myform 后用Visible=.T.表单能出来。
所有代码与书上一模一样的,在定义类中用ADD OBJECT 添加二个命令按钮,分加为二个命令按钮命名。我又重新对了一谝,应该没有错吧?是不是添加的对象各种属性之间没有加逗号有关乎?
2011-10-05 17:06
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
没有显示表单左上角的原因找出来了。是对象中各属性之间要加上逗号若竖的书写还要加分号,不同于属性批量设置with ...endwith,竖的写不要加逗号与分号。
top=30,;
  left=10,;
  height=30,;
  width=90,;
  caption="command1"
2011-10-05 17:19
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
知道了!但内容来自于张洪举<visualfoxpro权威指南>第215页中 2.为类中的对象编写方法和事件没有WindowType=1。
他不少例子都是public omyform ....,omyform.visible=.t.,但有时也用myform.show 而还没有(1或2)都是默认值,非模式表单。
2011-10-05 17:31
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
书中确实没有没有WindowType=1
 我又试了一下。定义变量后确实能显示。不定义公共变量要改为myform.show(1)也能显示。
public myform   
myform=createobject("form1")

myform.visible=.t.  

*myform.show(1)
define class form1 as form
  caption="我的表单"
  name="form1"
enddefine
2011-10-05 17:45
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
多谢了。麻烦您了。
2011-10-05 17:46
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
我是XP,他书中的例子:二个命令按钮能交互。大概是操作系统原因吧。
2011-10-05 18:03
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
定义公共变量,visible=.t.,不用 SHOW(1)
现附上交互后的图片。分别用VP6。VP9SP2
2011-10-05 18:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-351624-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.579750 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved