如图22。
到此为止,我们这个软件的界面就全部做好了。怎么样,不难吧? 下面要做的事情就是为按钮设置动作程序,也就是当按钮被按下这一事件发生后电脑要做些什么事,这就要为按钮的相应动作编一些代码,
先来编“退出”按钮,因为它比较简单。 一个按钮,或者说一个对象,可以有很多动作,换句话说可以有很多事件发生在它身上,但对于已经使用的对象来说,可能只有某一个或几个动作有用。对于按钮来说最常发生的事件就是被鼠标左键按动,我们这个软件中按钮所发生的事件也就是这个,对“退出”按钮来说,就是它在被按动后程序要退出,现在我们就来编完成这一任务的代码。
方法是:先用鼠标点一下“退出”按钮,使其被选中,这样后面编的代码才是它的,否则就可能编到别的对象中去了,这样就达不到要求。
在属性窗口中选择“方法程序”,然后在其中找到“Click Event”,即“按动事件”,如图23。
11
双击“Click Event”,出现编程窗口,如图24,
注意,其中的对象窗口中是“command2”,即退出按钮的名称(名称与标题不是一回事,虽然他们可以一样,详细的以后再讲),过程窗口中显示的是“Click”,即现在所编的程序(也叫过程)是针对“按动”事件的。如感到属性窗口挡住了编程窗口,可将其关闭。 这里的程序只有一句话: thisform.release
意思是“本表单.释放”,也就是将这个表单关闭,这样整个软件也就运行结束了。程序写好后如图25,
然后选择菜单上的“文件”下面的“关闭”命令。 就这么简单?就这么简单!
“退出”按钮编好后就要编“开始”按钮,这个按钮会稍微复杂一点,同样先按前面的方法进入程序窗口,但这次应是“Command1”的“Click”事件。代码如图26。
12
其中:
if thisform.text1.value=7 .or. ; thisform.text2.value=7 .or. ; thisform.text3.value=7
是一条语句,由于一行写出来太长,不易读,故将其分为三行,除最后一行外,前面每行都以分号结尾,这样系统就知道把它们看做是一行来处理。另外“or”(或者)两边各有一个点,不能少。程序中所有的命令、运算符号,如等号、分号、点号等,都必须是半角字符。 每行语句后面,从“&&”开始的文字是用于对程序进行解释和说明的,不会影响程序的运行,有也可,没有也可,但如果有的话,前面一定要以“&&”开头,并与命令语句空开一格以上。
与“退出”按钮一样,“开始”按钮的程序写好后,关闭程序设计窗口,这样整个程序就编好了。
程序编好后,先按一下表单设计器窗口,再按菜单上“文件”下的“保存”命令,即将编好的内容保存到磁盘上,接着按菜单上“文件”下的“关闭”命令,这样整个软件就编完了。如果没有先按一下表单设计器,即没有将表单设计器的窗口激活(窗口的标题为蓝底白字),可能造成关闭了其它的窗口。表单设计关闭后可看到如图27情况。
这时先用鼠标点一下“xy7”表单,使其反白(如果已经是反白的,当然不需再点了),然后按项目管理器上的“运行(U)”,如果程序没有错的话,软件便能正常运行起来。看看您的手气怎样,能不能第一次就赢,我编好这个程序后第一次按下就出了“7”,手气真不错。如果
13
有错误,会出现类似图28的显示,
这时按“取消”,然后按“退出”退出软件,如果“退出”按钮不起作用,则按窗口右上角的
按钮来关闭。之后在项目管理器中按修改
进入表单设计器,查出错误的地方,改正即可。
退出表单设计器后,按“文件”下的“退出”命令,便可退出FoxPro系统。如果没有打开过其它的项目管理器,下次启动FoxPro系统后,该项目管理器会自动打开,如没有打开,可按“文件”下的“打开”命令,或按钮
,找到所要的目录和项目管理器文件(如
“xy7.pjx”)打开即可。有时打开可能看不到表单名,看到的是如图29所示的情况,
这时只要按表单前面的“+”号将其变为“-”号,就可看到所有的表单了。
面向对象的编程很容易吧,希望您看了我们这一课后已有了充足的信心来学好VFP。
第三课 对象、属性、事件、方法
经过上一课我们已经对对象、属性、事件有了初步认识,这一课我们再做进一步讲解。 对象(object):就是我们软件中所看到表单、文本框、按钮、标签等等东西,一个软件的外观主要也就是由这些东西组成,那么我们要编软件就应该掌握各种对象的使用方法。
可放在表单内的对象,如按钮、文本框等也常常被叫作控件,我们在后面的课程中也经常会用到这个词。
所谓面向对象的编程,就是我们在编程的过程中是看着这些东西来编程,而不是用一大堆的语言代码来编出这些东西,因此面向对象的编程非常直观,在编的过程中就能看见程序运行起来的样子。
另外由于不需用语言来构造这些对象,只是象画图一样将它们画出来,其大小及位置也
14
不须用精确的数字来表示,你喜欢画多大就画多大,您无须知道诸如长是100、宽是80(当然您想知道的话也可以在属性窗口中查到),这样使得编程变得非常简单。
属性(property):就是对象的性质,如长、宽、放的位置、颜色、标题、字
体大小等等。为了达到我们所编软件的目的,也为了使软件运行的时候各种界面看起来舒服,我们必须在设计软件时对每个对象的有关属性做适当的设置。所谓\有关\,就是对于一个对象来说,在一个软件中只有部分与这个软件有关的属性需要设置,而大部分可能不需要设置,只需使用它们隐含的设置就行了,而同一种对象在另一个地方,可能需要设置的属性又不同了。
对于属性的设置,有些只需用鼠标做适当的拖动即可,如长、宽、放的位置等,当然它们也可以在属性窗口中设置,另一些则必须在属性窗口中进行设置,如字体、颜色、标题等。
事件(event):就是可能会发生在对象上的事情,也可以说我们对对象所做的
操作(或者系统对某个对象的操作),如按钮被按动(单击)、对象被拖动、被改变大小、被鼠标左键双击等等。在一个软件中,总会有一些对象在运行时会被我们操作,当然我们不是平白无故去操作一个对象,总是希望这个对象在被我们操作后能做出我们所期望的反应,如\退出\按钮在被按动后,我们就希望它使软件结束运行。而这一反映即使是同一种对象在不同的软件中,或在同一个软件中的不同地方,我们所需要的反映都是不同的,比如同样是按钮,“开始”和“退出”在按下后所产生的效果不同。
为了使得对象在某一事件发生时能够做出所需要的反应,我们就必须针对这一事件编出相应的程序代码来完成我们的目标。如一个对象的某个事件被编入了相应的代码,那么软件运行时,当这一事件发生(如按钮被按动),相应的程序段就被激活,并开始执行,如这一事件不发生,则这段程序就不会运行。而没有编有代码的事件,即使发生也不会有任何反应。
方法(method):也叫“方法程序”。前面三个概念在上一课已接触过了,“方
法”则是个新概念,它是指对象所固有完成某种任务的功能,可由我们在需要的时候调用。
“方法”与“事件”有相似之处,都是为了完成某个任务,但同一个事件可完成不同任务,取决于您所编的代码是怎样的,而方法则是固定的,任何时候调用都是完成同一个任务,所以其中的代码也不需要我们编了,FOXPRO系统已为我们编好(我们也看不见),只需在必要的时候调用即可。
比如:文本框可以用以显示文字,也可以输入文字,假如一个表单上有三个文本框,那么我们打字的时候,字进入哪个框呢?这就要看当前的焦点在哪个框上,一般我们可以用鼠标点一下所要的框,即将焦点放到了这个框上,有时我们会让软件自动地将焦点放在某个框上,这时就要调用“设置焦点”方法(setfocus),例如我们要把焦点放到第二个文本框上,调用的方法如下:
text2.setfocus
至于它是怎么将焦点放上去的,也就是说具体放的程序是怎么编的,我们不用知道,只要能达到的目的就行。
当然不但是文本框,其它的对象也都有此方法(有些方法只有某些对象才有),调用的一般语法是:
对象名称.setfocus 举一个实例来说明:当我们的幸运7游戏软件启动后,我们会看到在第一个文本框text1中有一个光标在闪动,也就是此时焦点在text1上,
但我们并不需要在其中输入文字,因此有个光标在闪动看起来很不舒服,此时需要的是
15