编程基础知识


[ 窗口单元及事件驱动 ]
[ 对象 ]
  [ 对象的概念 ] [ 对象的创建 ] [ 在程序中引用对象的属性及方法 ]
[ 编程举例 ]

  创建一个 E 应用程序只需要短短几分钟的时间 - 通过在设计窗口上“绘制”诸如编辑框和按钮等窗口单元来创建用户界面。然后,为窗口和窗口单元设置属性以规定诸如标题、位置、尺寸等的值。最后,编写处理程序将生命真正赋于程序。

窗口单元及事件驱动

  窗口单元及事件驱动是使用 E 语言在 Windows 环境下编程的基础知识。所谓“窗口单元”,即用作组成用户图形界面的基本成员,譬如:窗口、编辑框、图片框等等。窗口单元按可否容纳其它窗口单元划分为容器类和非容器类。按运行时是否可能具有可视外形划分为界面类和功能类。容器类窗口单元内可以包容其它的窗口单元,譬如窗口、选择夹、图片框等都属于容器类。而功能类窗口单元仅用作在其所在窗口上提供某种功能,譬如时钟、打印机等。

  所有窗口单元在其状态被改变或操作者在其上进行了某种操作后,都有可能向用户程序发送某种事件。譬如:当窗口的尺寸被改变后,窗口将向用户程序发送尺寸被改变的事件,用作给予用户程序通过相应的事件处理程序调整窗口单元布局或进行其它处理的机会。当操作者单击按钮后,“按钮”窗口单元将向用户程序发送按钮被单击的事件,等等。但并不是所有的状态改变或操作事件都将被发送到用户程序,那些 E 系统认为用户程序没有必要处理的或者系统完全能够自行处理的事件,都将被系统直接处理。这样用户可以快速创建强大的应用程序而毋需涉及不必要的细节。

  在传统的应用程序中,应用程序自身控制了执行哪一部分程序和按何种顺序执行程序,即从第一行开始并按应用程序中预定的路径执行。在事件驱动的应用程序中,程序不是按照预定的路径执行而是在响应不同的事件时执行不同的事件处理程序。如前所述,事件可以由窗口单元在其状态被改变或者操作者在其上进行了某种操作后触发。这些事件的顺序决定了程序执行的顺序,因此应用程序每次运行时所经过的程序的路径都是不同的。在执行中由于程序本身也可以对窗口单元的状态进行改变,譬如,在程序中改变编辑框中的内容将引发编辑框的“内容被改变”事件。如果该事件在用户程序中定义了相应的处理程序,则该处理程序将被执行。如果原来假设该事件仅能由操作者在该文本框中进行输入或修改所触发,则可能会产生意料之外的结果。所以在设计应用程序时必须完全理解并牢记事件驱动的特点。


对象

  E 语言是一种基于对象的编程语言,能否熟练地使用 E 语言,理解对象的概念及其使用方法非常重要。

  一、对象的概念:

  所谓“对象”,即为属性、方法和事件的集合。在人们的日常生活中,“对象”也可以理解为“事物”,比如说,一个人、一件东西、一起事情,都可以被认为是一个“对象”。 对象的属性记录对象特征,对象的方法提供了对对象进行某种操作的途径,对象的事件用作通知外部它的状态发生了改变。譬如说一个电源开关,其外形、颜色、使用电压等等都可以认为是该电源开关“对象”的属性,而关闭或打开此电源开关则可以认为是电源开关“对象”的方法。在关闭或打开的同时,它可能产生事件,譬如通知与其相连的电器开始工作或者停止等等。在 E 程序中,例如“画板”窗口单元,即是一个典型的对象,它具有 “画笔类型”、“画笔粗细”等属性,同时又有“画直线”、“画矩形”等方法,在需要重画时还会产生“绘画”事件;

  二、对象的创建:

  在 E 程序中,对象通过定义数据类型的实例来创建。定义方法有多种,譬如将一个窗口单元绘制到设计窗口上或者在程序中定义一个具有该数据类型的容器。被绘制到设计窗口上的窗口单元或者所定义的容器即为对象。所谓“数据类型”,只是定义了对象的构架,就好比是房屋设计图和实际房屋之间的关系。设计图只是指定了该房屋的构造和布局,在使用该设计图建造出实际的房屋之前,房屋对象是根本不存在的。同样,一个数据类型可以定义出无限多个对象,就好比使用某一份房屋设计图可以建造出无数同样的房屋一样;

  三、在程序中引用对象的属性及方法:

  通过在对象及其属性或者方法之间加上句点(“.”)即可以引用对象的属性及方法。譬如以下语句:“容器1 = 画板1.画笔粗细”(读取“画板1”对象的“画笔粗细”属性),“画板1.画笔粗细 = 1”(修改属性)或者“画板1.画直线 (100, 100, 200, 200)”(调用方法)等。

 

举例

  下面举例说明一步步创建显示 “祖国,您好!”信息的 E 程序。

  创建 E 应用程序有三个主要步骤:

  为了说明这一实现过程,按照以下步骤可创建一个简单应用程序,该应用程序的界面由一个标签和一个命令按钮组成。单击命令按钮,标签中会出现 "祖国,您好!" 信息。

  一、创建应用程序界面:

  建造 E 应用程序的第一步是创建并设计窗口,这些窗口将是应用程序界面的基础。然后在窗口上绘制构成界面的窗口单元。对于目前的应用程序,可用窗口单元工具箱中的两个窗口单元:标签和按钮。

  <1>、进入系统后跳转到名称为“_启动窗口”的窗口设计界面。如果在安装系统后没有使用“程序 -> 系统设置”菜单功能修改 E 程序的启动方式,新建程序进入编辑后就直接停留在“_启动窗口”窗口的设计界面;

  <2>、在窗口单元工具箱中选中“标签”窗口单元,使用鼠标将它绘制到窗口的上边中部;

  <3>、在窗口单元工具箱中选中“按钮”窗口单元,使用鼠标将它绘制到窗口的下边中部。

  二、设置属性:

  选中被绘制在窗口上的“标签”窗口单元,在属性表中将其“标题”属性值改为空。

  三、编写代码:

  <1>、双击被绘制在窗口上的“按钮”窗口单元或者选中该窗口单元后在属性表最下边的组合框内选取“被单击”事件从而开始编写对应的事件处理子程序;

  <2>、在子程序的程序部分输入“bq1.bt = "祖国,您好!"”后回车。

  至此,我们的第一个应用程序已经创建完毕,按下 F5 键或使用“运行 -> 运行”菜单功能开始执行程序,单击窗口中的按钮,标签中即出现 "祖国,您好!" 信息。编制好的例程请见附带的 FirstApp.e 程序文件。