FOXPRO 对象、属性、事件、方法
第三课 对象、属性、事件、方法
经过上一课我们已经对对象、属性、事件有了初步认识,这一课我们再做进一步讲解。
对象(object):
可放在表单内的对象,如按钮、文本框等也常常被叫作控件,我们在后面的课程中也经常会用到这个词。
所谓面向对象的编程,就是我们在编程的过程中是看着这些东西来编程,而不是用一大堆的语言代码来编出这些东西,因此面向对象的编程非常直观,在编的过程中就能看见程序运行起来的样子。
另外由于不需用语言来构造这些对象,只是象画图一样将它们画出来,其大小及位置也不须用精确的数字来表示,你喜欢画多大就画多大,您无须知道诸如长是100、宽是80(当然您想知道的话也可以在属性窗口中查到),这样使得编程变得非常简单。
属性(property):
对于属性的设置,有些只需用鼠标做适当的拖动即可,如长、宽、放的位置等,当然它们也可以在属性窗口中设置,另一些则必须在属性窗口中进行设置,如字体、颜色、标题等。
事件(event):
而这一反映即使是同一种对象在不同的软件中,或在同一个软件中的不同地方,我们所需要的反映都是不同的,比如同样是按钮,“开始”和“退出”在按下后所产生的效果不同。
为了使得对象在某一事件发生时能够做出所需要的反应,我们就必须针对这一事件编出相应的程序代码来完成我们的目标。如一个对象的某个事件被编入了相应的代码,那么软件运行时,当这一事件发生(如按钮被按动),相应的程序段就被激活,并开始执行,如这一事件不发生,则这段程序就不会运行。
而没有编有代码的事件,即使发生也不会有任何反应。
方法(method):
“方法”与“事件”有相似之处,都是为了完成某个任务,但同一个事件可完成不同任务,取决于您所编的代码是怎样的,而方法则是固定的,任何时候调用都是完成同一个任务,所以其中的代码也不需要我们编了,FOXPRO系统已为我们编好(我们也看不见),只需在必要的时候调用即可。
比如:文本框可以用以显示文字,也可以输入文字,假如一个表单上有三个文本框,那么我们打字的时候,字进入哪个框呢?这就要看当前的焦点在哪个框上,一般我们可以用鼠标点一下所要的框,即将焦点放到了这个框上,有时我们会让软件自动地将焦点放在某个框上,这时就要调用“设置焦点”方法(setfocus),例如我们要把焦点放到第二个文本框上,调用的方法如下:
text2.setfocus
至于它是怎么将焦点放上去的,也就是说具体放的程序是怎么编的,我们不用知道,只要能达到的目的就行。
当然不但是文本框,其它的对象也都有此方法(有些方法只有某些对象才有),调用的一般语法是:
对象名称.setfocus
举一个实例来说明:当我们的幸运7游戏软件启动后,我们会看到在第一个文本框text1中有一个光标在闪动,也就是此时焦点在text1上,但我们并不需要在其中输入文字,因此有个光标在闪动看起来很不舒服,此时需要的是按“开始”按钮,所以焦点应在“开始”按钮上(这样按回车键也可以按下“开始”按钮),因此我们应该在整个表单启动的时候将焦点设到此按钮上。
当我们启动一个表单的时候,该表单的“激活”事件(activate)就会发生,但由于一般情况下这一事件中没有编入代码,所以即使发生我们也感觉不出来。那么现在我们就要借用这个事件再去调用setfocus方法,便可达到我们目的。具体做法是这样:
打开xy7项目管理器,找到xy7表单,按“编辑”进入表单设计器,调出属性窗口,看一下窗口上面的对象选择窗中是否是“form1”,如图1,如不是则选择到“form1”。
选择“方法程序”(“全部”也行),在第一行找到“activate event”事件,如图2,双击此事件进入程序编辑窗口,输入下面代码:
thisform.command1.setfocus
意思是“本表单.command1对象.设置焦点”,command1即是“开始”按钮的名称。
输入完程序后,存盘、退出。这样一旦软件开始运行,表单被启动-该表单的“激活”事件发生-其中的程序开始执行-将焦点设到command1即开始按钮,焦点设在上面后会看到有一个虚线框住按钮标题,这时text1中就没有光标在闪动了。
还不赶快试一下!
进入讨论组讨论。- 最新文章
- FOXPRO 常用的对象、属性、事件、方法(1)[01-08]
- Foxpro ON命令[01-08]
- union的使用[01-08]
- 读取foxpro格式的dbf文件[01-08]
- 附表:选项对话框的说明(4)[01-08]
- 附表:选项对话框的说明(2)[01-08]
- 相关文章
- FOXPRO 常用的对象、属性、事件、方法(1)[01-08]
- VFP编辑框中实现自动更正的方法[01-08]
- VFP表跟踪日志的实现方法[01-08]
- 巧妙实现BROWSE语句左右翻屏的方法[01-08]
- VFP中实现在浏览器中运行应用程序方法[01-08]
- VFP表跟踪实现方法[01-08]
