1.2.5.1 为用户操作建立“事件”
单击窗体上的“Rectangle”按钮,在Object Inspector中,点动“Events”页标签,出现事件窗口。在本例程中,我们只关心OnClick事件,即按钮接收到左键单击时应用程序所作出的反应。在Object Inspector窗口中双击OnClick事件右端的值段,会使得Delphi激活库代码编辑器,并将光标停在该按钮所对应的过程的begin...end之间。“Rectangle”按钮的功能是使Shape部件的形状为矩形。联系前文我们查看过的Shape部件的“Shape”属性,现在,我们要做的是在程序中控制部件的属性。
在光标处键入以下的程序段:
Shape1.Shape := stRectangle;
用同样的方法,在Button2和Button3的OnClick事件响应内复制以上语句,并分别将赋值号后的属性值改为stRoundRect和stEllipse。为防止输入错误导致程序运行出错,建议您使Shape1部件的Object Inspector可见,检视属性Shape的各个值并对应输入。
在代码编辑器中,Delphi自动建立的过程以关键字Procedure开头,用户可以在begin…end之间加入自己的程序,也可以定义变量。这个程序块对用户的外部事件(此例中是按动按钮)进行响应。我们称之为事件处理过程。
1.2.5.2 使用颜色编辑对话框
图标按钮“Color”要控制部件Shape1的颜色,我们可以调入颜色编辑对话框,用以选择要变成的颜色。这时就要用到运行时不可视的部件ColorDialog了。同样地使图标按钮BitBtn1响应OnClick事件,在它的过程中加入以下的语句:
ColorDialog1.Execute;
Shape1.Brush.Color := ColorDialog1.Color;
这样,图标按钮的功能也就完成了。
初学者可能对这样的程序段不能理解。其实也是十分简单的。查看ColorDialog的Brush属性,就会发现它是个集属性,在其下还有一个Color选项,正是我们想改变的属性。既然我们想将图形的颜色变得更加丰富多彩,它本身提供的几种颜色就已不能满足要求了。用颜色编辑器可以得到更多的色彩。程序的第一句用Execute方法,使得ColorDialog运行它本身。当用户在对话框中进行操作,选定了一种颜色时,即使得TColorDialog对象的一个属性Color置为选定颜色的值。将此值赋给Shape1的Brush属性的子属性Color,就将选定的颜色加到了图形上。
读者的要求可能会是,怎样尽快的了解这些这些方法、属性和域呢?下文对使用联机帮助的简单介绍可能会对您有所裨益。
1.2.6 使用联机帮助Help
事实上,使用联机帮助是您全面地了解可用的方法、对象的域、属性等信息的最快捷途径。您还可以参考Delphi给定的例程。较为简单有效的方法是使用Help中的搜索功能。如果您对一个对象知之甚少,选用主菜单中的Help Help Topics项,在弹出的帮助对话框,选用Indexes(“索引”)页,Delphi 2.0会提示您输入要检索的主题。以您想用的部件的对象名作为检索主题词,可以参阅很多基本的信息。例如,上文的例程中,在编辑框中键入对象的名称TColorDialog,在词条中就会出现该主题,按动Display按钮显示出TColorDialog的帮助信息。查看method,可以找到能应用在CclorDialog1上的方法Execute;仔细阅读它的功能,上述的编程便不难理解了。Properties中提供了部件的所有属性,在关键属性Key Properties前加上了“金钥匙”,提供了详尽的说明。在Task中您可以查阅该对象的其它相关主题,还可以参阅Example中的应用例程。用帮助窗口的Edit各种功能进行复制、剪贴等操作。
如果您已经对对象有一定的了解,想查阅它的具体方法、域等,可以直接用主题词进行检索。
以上,我们已经完成了简单的例程。运行您的程序,选用各个按钮改变图形的颜色和形状。如图1.9所示。虽然它只是一个“小玩具”,却直观地给您一个用Delphi编程的印象。对比一下您亲手编制的程序量和程序的功能,您就会理解Delphi为程序员提供了怎样的方便。