Microsoft Visual FoxPro 6.0中文版教程(5)

2019-03-15 20:20

现的语句为:

text1.controlsource='sj'】

值(value)

【指定控件当前的状态。

比如一个文本框当前的内容是什么。 在程序设计和运行时都可更改。 语法:

控件.Value=nSetting

设置:

nSetting对于文本框来说即是在文本框中输入的字符串或数值、日期、逻辑值等等。隐含的数据类型为字符型。 备注:

对于表格控件,其值只有在表格获得焦点的时候才可更改。 当控件的控制源做了设置,那么它的值与控制源的值相同。 一般在我们的程序中都是用控制源来控制控件的值。】

文本对齐(alignment)

【指定控件文本的对齐方式。即左、中、右。 在程序设计和运行时都可更改。 语法:

控件.Alignment=nAlign

设置:

nAlign对于文本框来说,可作的设置如下:

Setting Description 0 左 1 右 2 中

3 自动(隐含),即文本靠左,数值靠右。】

名称(name)

【指定对象被调用的名称。 在程序设计和运行时都可更改。 语法:

对象.Name=cName

设置:

cName即为给对象指定的名称文本。 备注:

21

对象隐含的名称一般是对象的类型再加一个整数,比如:创建的第一个表单就叫form1,在一个表单中创建的第三个文本框就被叫做text3。

当然您可以修改为任何您所喜欢的名称,但为了简便起见我们一般都不改。

名称和标题不同,虽然隐含时它们是一样的,当您要调用一个对象时必须用它的名称,而不能用它的标题(caption),参见标题属性。所以

当您改了一个对象的标题时,并不表示它的名称也改了,它的名称还是原来的,您可以在属性窗口的name属性中看到。

如果一个对象是容器型对象(其中包含有别的对象),而它又是最外一层的容器(因为容器中还可有容器),那么在程序中第一次调用它时

,应将它附给一个变量,以后调用它时,用这个变量名,而不用它自己的名称。比如一般我们在程序中第一次调用一个表单往往是用类似如 下的语句:

do form xy7 name lucky

这里的lucky就是xy7表单所附于的变量名,您可以用任何变量名,只要不与程序中的其它变量重名,当然也可以用与表单名一样的变量名( 我们常常是这样),以后在调用这个表单时就用这个变量名,如把焦点设到这个表单中的command1按钮,程序为: lucky.command1.setfocus

而不是:xy7.command1.setfocus

当在一个对象内部的事件程序中调用本对象时,可用“this”代替对象名称,比如在幸运7表单中,在按过开始按钮后,我们想把这个按钮 的标题设为“再开始”,那么可在这个按钮的click事件中加上如下语句: this.caption='再开始'

它等同于command1.caption='再开始',但当这个按钮的名称改为“command3”时,这一句就不对了,必须做修改才能正确运行,但上一句 不用改,仍然可以用。

如果这个对象是表单,那么调用它自己时不能用“this”,而用“thisform”代替名称或名称变量。】

只读(readonly)

【确定使用者是否可以编辑控件。 在程序设计和运行时都可更改。 语法:

表单.控件.ReadOnly=lExpr

设置:

lExpr 可设置的值有:

.t. 真,即控件不可编辑 .f. 假,即控件可编辑 备注:

如果要让一个件一开始就是指读(不可编辑)的,可在程序设计时将其设为指读,在属性窗口中找到readonly属性,将其设T(真)即可。 如要在程序运行时,使一个控件变为指读,就可采用上面的语句,比如将xy7表单中的text1

22

文本框设为指读,程序为: xy7.text1.readonly=.t.

注意,这里的xy7是启动表单时为该表单所指定的变量名。 举例:

以我们在第二课中的幸运7程序为例,在程序启动后,可以在上面三个文本框中输入字符,但这是我们所不需要的,为了避免这个问题可以

在设计程序时,将三个文本框设成指读,这样就不能输入字符了。不信您试试。】

可见(visible)

【设定一个控件是否可以看见。 在程序设计和运行时都可更改。 语法:

对象.Visible=lExpr

设置:

lExpr 可设置的值有: .t. 真,即可见 .f. 假,即不可见 备注:

就如同我们在幸运7程序中对“输”、“赢”两字的处理。】

事件(event):

单击(click)

【当一个对象被鼠标左键点击时发生此事件。】

初始化(init)

【当一个对象被创建时此事件发生。 举例:

在幸运7程序中,我们也可以不属性窗口中把“输”、“赢”两标签的可见属性设为假,而在这两个标签的init事件中加上如下语句: this.visible=.f.

这样当两标签形成时,它们的init事件被激活,执行上面语句,同样可达到使两标签看不见的效果。 备注:

容器中对象的init事件比容器的init事件早发生,这一点在程序编制过程中也是很有用的,籍此我们可以在容器的init事件对容器中的对象

进行访问,比如还是上面那个例子,可以不在每个标签的init事件中写入程序,而只在表单的init事件中写入如下语句即可: thisform.label1.visible=.f. thisform.label2.visible=.f. 这样可以达到同样效果。

23

而容器中各对象的init事件发生的先后顺序,取决于编程时它们被添加到表单中的先后顺序。】

方法(methord):

设置焦点(setfocus)

【将焦点放到控件上。 语法:

控件.setfocus 备注:

一旦一个控件获得了焦点,操作所做的输入都是针对此控件。】

刷新(refresh)

【重新显示对象,并把它们的各个值设为最新。 语法:

表单.对象.Refresh 备注:

一般说来,系统会自动在需要的时候为对象刷新,但并不总是有效,有时我们会看到在程序执行过程中改变了一个对象的某个值,但这个对

象却没有任何反应,这时我们就调用一下刷新方法程序,来将这个对象刷新一下。】

释放(release)

【释放一个表单,也就是关闭一个表闭。 语法:

表单.Release】

第五课 常用编程命令及常用函数

注:在语法中如用方括号“[ ]”括起来的词句,表示可以不用。

命令

假设(if...endif)

【根据一逻辑表达式的值,有条件的执行一组命令。 语法:

IF 逻辑表达式 [THEN] 程序组1 [ELSE

程序组2]

24

ENDIF 参数:

逻辑表达式代表一逻辑值,如果这逻辑值为真,系统执行程序组1,否则不执行程序组1,如果有else及程序组2的话,则执行程序组2,如没 有则什么也不执行,直接执行endif后面的语句。 备注:

在if...endif之间还可以有if...endif,即该命令是可以嵌套的。 then可以有也可以没有,对程序没有影响。

else及程序组2可以有也可以没有,但如果有的话,在逻辑表达式的值为假时,程序组2将被执行。

if 与 endif 必须配对使用,即有一个 if 必须有一个 endif, 否则程序会出错。

举例:

例1:假如分数字段的值大于等于90,则让等级字段的值为“优”,并显示该记录。程序如下:

if 分数>=90

replace 等级 with '优' display endif

例2:在数据库中可以把性别字段设为逻辑型,“真”代表“男”,“假”代表“女”,但显示时不能显示真、假,否则别人看不懂,而应

显示男、女,因此我们设一变量xb,根据性别字段的具体值,将xb的值设为男或女,然后在需要的时候显示xb的值即可。程序如下: if 性别 xb='男' else

xb='女' endif

其中第一句:if 性别,表示“假如性别为真”的意思,不要写成“if 性别=.t.”。 以上程序也可以写成如下形式,效果相同: if .not. 性别 xb='女' else

xb='男' endif

即,假如性别不为真的话,xb的值就为女,否则为男。】

循环(do while...enddo)

【根据条件重复执行一组程序。 语法:

DO WHILE lExpression Commands [LOOP]

25


Microsoft Visual FoxPro 6.0中文版教程(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:预防医学

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: