




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 Delphi开发环境第2章 Delphi开发环境“真正的程序员用C,聪明的程序员用Delphi”,Delphi是开发数据库前端的优秀工具,它以其简洁明快的编程语言、功能强大的组件和灵活方便的编程环境在竞争激烈的市场中越来越赢得青睐。采用Delphi来开发数据库应用程序具有更大的灵活性和可扩展性。Delphi支持单机的dBase、Paradox数据库和流行的关系数据库,如Oracle,Sybase,SQL Server等。最后完成的系统可以在单机、Netware网络文件共享方式和客户机/服务器条件下运行。Delphi与InterBase的结合在所有类似编程语言中是最具特色的,是开发C/S程序最有用和最强大的工具组合。Delphi安装完毕后,会产生一个InterBase数据库类型的Local Server。有了它,用户就可以编写C/S数据库程序,而无需一个真正的后台数据库服务器;Local Server虽然在本地计算机中运行,但它的确扮演了一个数据库服务器的角色,应用程序在Local Server上运行和在服务器上运行没有什么不一样。本书将以InterBase 6.0作为后台数据库,讲述如何用Delphi 6便捷地开发管理信息系统应用程序。2.1 开发环境的建立本书所有的例程在Delphi 6开发环境中编写。Delphi 6可运行于Windows 98或Windows 2000下,并且在这两种操作系统中编程的界面和操作均相同。数据库后台使用InterBase 6.0。程序编写完成后,用InstallShield Express来制作安装程序。以上三个软件都可以在Delphi 6的安装光盘中找到。将Delphi 6安装光盘放入光驱中,系统会自动启动安装程序。如果安装程序没有自动启动,也可以直接双击光盘根目录下的INSTALL.EXE文件,安装启动界面如图2-1所示。图2-1 Delphi 6 安装启动界面Delphi 6安装光盘中包含6个产品:l Delphi 6应用程序开发工具Delphi 6;l TeamSource基于Internet的服务,能使地理位置分散的开发人员在线协同开发应用程序;l InterBase 6.0 ServerInprise公司的数据库,性能评估不错,但是应用不太普遍;l InterBase 6.0 Desktop Edition单机应用的InterBase数据库;l Remote Debugger Server远程代码调试服务;l InstallShield Express Custom Edition for DelphiInstallShield为Delphi定制的安装制作应用程序,可制作出一个比较漂亮的安装界面。建立本书例程所叙述的开发环境,需要安装1、3、6这三项的应用程序。对系统的要求如下:l 中央处理器:Intel Pentium 166 MHz或更高性能的CPU(推荐使用P 400 MHz以上)。l 操作系统:Microsoft Windows 98/2000/Me,或Windows NT 4.0(SP5或更高)。l 物理内存:64MB(推荐使用128MB以上)。l 硬盘空间:Delphi 6至少需要115MB(简化安装);InterBase 6.0完全安装(包括服务器、客户端、Acrobat Reader和所有的文档)需要至少36MB硬盘空间,最小安装(只含服务器应用软件)只需11MB的硬盘空间;InstallShield Express需要75MB硬盘空间。l 光驱。l VGA监视器。l 鼠标或其他定位装置。l 网络支持:任何与Windows 98/NT/2000/Me兼容的网络。2.2 Delphi集成开发环境Delphi 6安装完成之后,会产生一个Borland Delphi 6程序组,如图2-2所示。所有的开发工具都在这个程序组中。其中包括Delphi 6主程序、SQL Explorer数据库管理工具、Image Editor绘图工具和帮助文档等。这些常用的开发工具也可以在Delphi 6集成开发环境中通过菜单直接调用。图2-2 Delphi 6程序组2.2.1 启动Delphi 6从开始菜单中选择“程序Borland Delphi 6Delphi 6”进入Delphi 6的集成开发环境,如图2-3所示。设计期窗口源代码编辑器对象监视器菜单工具条和控件图2-3 Delphi 6集成开发环境Delphi 6集成开发环境与Visual Basic等开发工具的多文档界面不同,它采用的是浮动面板的形式。整个开发环境主要分为四个部分:命令菜单及控件、对象查看窗口、设计期窗体和源代码编辑器。2.2.2 命令菜单和控件最上部的是命令菜单和可用控件。菜单主要包括:l File文件管理,包括新建/打开/保存工程或文件、设置打印机、退出;l Edit主要的编辑操作,包括恢复、排列、复制、粘贴等操作;l Search用于搜索特定的对象;l View用于工程管理、对象察看、控件选择、显示窗体/源代码等操作;l Project修改工程的各种属性,编译可执行文件;l Component组件工具,建立和安装新的自定义组件;l Database数据库管理工具;l Tools一些开发工具,可设置环境变量、编辑器属性和编译选项等;l Help帮助文档。菜单中几个常用的功能被放置到工具条上,便于操作,如图2-4所示。12345678910111213141516图2-4 工具条工具条的16个按钮功能如下:(1) 新建文档;(2) 打开已存在的文档;(3) 保存当前编辑的文档或窗体源代码(快捷键:Ctrl+S);(4) 保存所有的打开的文档;(5) 打开一个已存在的工程文件(快捷键:Ctrl+F11);(6) 将文件添加到当前的工程中(快捷键:Shift+F11);(7) 从当前工程中删除文件;(8) 帮助;(9) 显示程序单元的源代码(快捷键:Ctrl+F12);(10) 显示设计期窗体(快捷键:Shift+F12);(11) 在设计期窗体和窗体源代码之间切换(快捷键:F12);(12) 新建窗体;(13) 运行当前工程(快捷键:F9);(14) 暂停运行;(15) 调试正在运行的工程,并跟踪运行到每个调用的函数里去(快捷键:F7);(16) 调试正在运行的工程,但不跟踪到调用的函数里去(快捷键:F8);常用的控件在工具条的右侧,主要包括28类上百个控件,根据需要还可以加入用户自己设计的各类控件。由于控件的类别较多,需要通过控件区右上角的方向按钮来左右移动控件类别标签。2.2.3 对象监视窗口对象监视窗口(Object Inspector)用于查看管理对象属性和事件,如图2-5和2-6所示。Delphi启动时,对象监视窗口在屏幕的左侧,是浮动面板,因此可以方便地被拖动到任何位置。单击窗口右上角的“关闭”按钮可将窗口隐藏,而单击“View”菜单的“Object Inspector”选项可再次显示此窗口,快捷键“F11”同样可以呼出对象监视窗口。 39 图2-5 对象监视器的属性页图2-6 对象监视器的事件页对象监视窗口的顶部是对象选单。例如当前对象是窗体Form1,则在对象选单中显示为“Form1 TForm1”,左边是对象的名称,与该对象的Name属性相同,右边为其类的名称。单击对象选单右侧的下拉按钮,会列出当前窗体上所有的对象。对象监视窗口具有两个标签页:Properties(属性)和Events(事件)。在设计期,点选属性页可显示和设置所选对象的各种属性;点选事件页将列出该对象具有的触发事件,双击某一事件,则在事件代码编辑器中自动添加该事件的处理程序声明,并且转到代码编辑器窗口,进行代码的编写和修改,也可以通过下拉按钮选择已存在的处理子程序作为该事件的处理程序。2.2.4 设计期窗体启动Delphi时,系统自动建立一个项目和一个设计期窗体。开发应用程序的过程实际上就是在窗体上放置各种对象、进行属性设置和编写事件处理代码。将控件放置到设计期窗体上有四种方法:(1) 双击所需的控件按钮,在窗体的中央将以控件默认的大小加入一个新的控件对象。(2) 单击所需的控件按钮,在窗体适当的位置单击,可在此位置上创建一个默认大小的控件对象。(3) 单击所需的控件按钮,在窗体上拉出一个适当大小的方框,建立相应的对象。(4) 如果要在窗体上批量创建多个同类对象,请按住Shift按钮,然后单击该控件按钮。此时该控件按钮就会被锁定,表现为按钮周围有蓝色的边框。在设计期窗体上就可以按2、3所述的方法创建多个控件对象。要解除这种锁定状态,只需单击其他控件按钮即可。在设计期窗体加入控件对象之后,可以拖动该对象到合适的位置,也可将其放大或缩小。同时在对象被选中状态下,可以在对象监视窗口中设置对象的属性和事件。在设计控件布局时,经常需要对一组对象进行统一的处理(例如统一大小),这时就需要同时选取多个对象,选取的方法如下:(1) 点选第一个对象(称为“参照”对象),然后按住Shift键,点选其他各个对象。(2) 在窗体上拉出一个范围把相邻的几个对象选中。(3) “Edit”菜单“Select All”选项,选中当前窗体上的所有对象。选取一组对象后,就可以对它们进行相同处理,常用的操作是对齐或调整大小。右键单击选中的对象组,在弹出菜单中选择“Align.”,就会出现“对齐”对话框,如图2-7所示。图2-7 “对齐”对话框选择相应的选项就可以实现以“参照”对象为基准的水平或垂直方向的各种对齐模式。如果要调整对象的大小,可以在右键菜单中选择“Size.”,就会出现如图2-8所示的“大小调整”对话框。可以将所选对象统一调整到指定的大小。另外,当选中多个对象时,对象共同的属性,如大小、位置、背景色、字体等,将显示在对象监视窗口中,在此我们也可以进行统一的修改。图2-8 “大小调整”对话框2.2.5 源代码编辑器在启动Delphi后,源代码编辑器通常被自动建立的窗体覆盖。若要查看程序代码,可以按F12键将源代码编辑器窗口移动到窗体前。F12键是设计期窗体和源代码编辑器之间切换的快捷键。源代码编辑器窗口布局如图2-9所示。图2-9 源代码编辑器窗口的左侧是单元资源列表,包括窗体包含的所有对象列表,自定义的变量和常量列表,其他相关单元的列表。窗口的右侧为当前窗体的源代码。如果打开了多个程序单元,源代码编辑窗口中将显示多个标签页,图2-9中就包含Unit1和Unit2两个单元。源代码编辑器有智能提示功能。当输入一个对象名,并且敲入对象属性事件引用符“.”时,系统会自动以列表的形式,列出可供选择的对象属性和事件。此时可以用鼠标来选择,也可以敲入对象属性或事件的头几个字母进行检索。然后按回车键将选定的属性或事件添加到代码中。这个功能可以帮助我们尽量避免因为输入错误而导致的程序出错。如果在对象名后面输入“.”号后,没有出现列表,则可能是因为前面的语句有错,或者对象没有适合当前位置的属性或事件。2.3 应用程序框架每个Delphi开发项目都由若干个相关的文件构成。一些文件是在设计时创建的,如窗体的定义文件。另外一些文件则是在编译时生成。要有效地管理Delphi 6的项目,有必要了解各种文件的用途和结构。Delphi 6的文档和在线帮助都详细介绍了项目中文件的用途。2.3.1 项目文件(.dpr)项目文件是Delphi在设计时自动创建的,文件后缀名为“dpr”。项目文件的名称也是最后编译所得可执行文件的名称。项目文件的源代码一般如下:program Project1;/项目类型和名称uses/引用单元 Forms,/窗体类 Unit1 in Unit1.pas Form1,/Unit1单元说明$R *.RES/引用资源文件begin/程序执行部分 Application.Initialize;/初始化 Application.CreateForm(TForm1, Form1);/创建窗体 Application.Run;/运行,即显示窗体Form1end./执行部分结束项目文件是主窗体以及其他自动创建的窗体实例化的地方。一般不需要编辑项目文件,除非要执行程序初始化例程、显示启动画面或执行其他必须在程序启动时运行的例程。项目文件是一个标准的Pascal源文件。uses子句列出了主窗体单元Unit1。如果包含其他自动创建的窗体,会以同样的形式列在uses子句中。源文件中的“$R *.RES”用于引用项目的资源文件。这一行告诉编译器去连接一个资源文件,该资源文件名与项目文件相同,但扩展名为“res”。项目的资源文件中包含了程序图标和版本信息。最后,begin.end之间的语句是应用程序要执行的主代码。在这个例子中,创建了主窗体,即Form1。当Application.Run这条语句执行后,Form1作为主窗体显示出来。2.3.2 单元文件(.pas)单元文件是Pascal源文件,后缀名为“pas”。在创建窗体、数据模块、组件或者普通程序模块时,都会产生相应的单元文件。下面是一个窗体的单元文件。为了说明方便,我们在前面加了行号。1: unit Unit1;/单元名称2: interface3: uses/引用单元4: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,5: StdCtrls;6: type/类型声明7: TForm1 = class(TForm)/TForm1类8: Label1: TLabel;/标签对象9: Edit1: TEdit;/文本编辑框对象10: Button1: TButton;/按钮对象11: procedure Button1Click(Sender: TObject);/Button1 OnClick事件处理程序12: private/私有部分13: Private declarations /在此添加私有变量和方法声明14: public/公共部分15: Public declarations /在此添加公有变量和方法声明16: end;/TForm1类声明结束17: var/变量声明18: Form1: TForm1;/声明Form1对象19: implementation20: $R *.DFM21: procedure TForm1.Button1Click(Sender: TObject);/事件处理程序22: begin/处理程序开始23: Edit1.Text:=Hello, World!;/修改文本编辑框内容24: end;/处理程序结束25: end./单元结束源文件的第一行指明了单元的名称,一般单元名称和单元文件名相同,由系统在第一次保存该单元文件时自动设置。其他的单元文件需要引用该单元的实例对象的属性或者方法时,可以在uses子句中加入该单元名。3-5行的uses子句指定了该单元所引用的其他单元。在Delphi中,各种类库都是一单元文件的形式来定义。因此,要使用Delphi提供的控件对象,就需要包含该控件所在的单元。6-16行定义了一个TForm1类,它是从TForm继承而来,并且包含了窗体中所有控件的定义,如Label1、Edit1和Button1。并且定义了一个Button1Click过程。如果我们要为程序增加一些变量和函数过程,可以在private和public两个范围内定义。两者的区别是private定义的变量和函数只能被单元内的程序访问;而public定义的可以被其他单元的程序访问和调用。17、18两行定义了一个TForm1的实例对象Form1。这主要是为了单元中的函数和过程可以通过这个对象来访问窗体中控件的属性和方法。20行指明了对应的窗体文件名称与单元文件名称相同,后缀为“.dfm”。21-24行是前面定义的Button1Click过程的实际代码。完成的工作就是将Edit1的文本显示为“Hello, World!”。2.3.3 窗体文件(.dfm)当创建一个窗体时,Delphi会同时创建一个单元文件和一个窗体文件。窗体文件存储了窗体的二进制信息,文件后缀名为“dfm”。一般不用直接编辑窗体文件。如果需要查看窗体文件的内容,可以用Delphi的编辑器打开后缀为dfm的文件,并且。这时候文件以文本的形式显示,可以进行修改。窗体文件中保存了窗体上所有控件的非缺省属性值。直接修改窗体文件和在对象监视器中修改控件属性可以获得相同的效果。2.3.4 资源文件(.res)资源文件中包含了二进制数据,将连接到应用程序的可执行文件中。资源文件是Delphi自动创建的,包括应用程序的图标、应用程序版本信息及其他信息。要把资源加入到应用程序中,可以先创建一个单独的资源文件,然后把它连接到项目中。要创建资源文件,可以使用专门的资源编辑器,如Delphi中的Image Editor或者Resource Workshop等。2.3.5 项目选项和桌面设置文件(.dof, .dsk)项目选项文件,后缀名为“dof”,存储了Project菜单列中Opetions菜单项所设置的项目选项。它是在第一次保存项目时创建的,以后每次保存项目时都会保存这个文件。桌面设置文件,后缀名为“dsk”,存储了Toos菜单列中Options菜单项所设置的桌面选项。桌面设置和项目选项不同,项目选项于具体项目有关,而桌面设置作用于Delphi环境。错误的项目选项和桌面设置文件在编译时可能导致像GPF这样不可预测的错误。如果出现,应当把dof和dsk文件都删除。当保存项目或退出Delphi时会重新生成这两个文件,并且恢复到默认设置。2.3.6 备份文件(.dpr, .pas, dfm)自第二次保存开始,Delphi 6为项目文件、单元文件和窗体文件生成备份文件。备份文件是上次保存的文件的副本。项目文件的备份文件后缀名为“dpr”;单元文件的备份文件后缀名为“pas”;窗体文件的备份文件后缀名为“dfm”。删除备份文件一般不会有什么问题。如果不想生成备份文件,可以在“Editor Properties”对话框的“Display”标签页上取消“Create Backup File”选项。2.4 VCL控件的使用用Delphi开发应用程序是一个基于组件的开发过程。Delphi为我们提供了丰富的可视和不可视控件,用于创建友好的用户界面,控制后台数据库和网络的通信等。可以说,在Delphi环境下开发应用程序主要可以分成两部分:一是人机界面的开发,即应用程序的外表;二是人机交互的实现,即各类事件的处理。为此,要规划一个应用程序,首先就要熟悉Delphi提供给我们的一些基本组件的特性。下面我们就来详细描述一些编程中经常用到的组件的特性。2.4.1 一些共同的属性VCL的控件都由一个共同的父类TComponent继承而来。因此有很多共同的属性和触发事件。当被选中时,控件对象的属性和事件会显示在对象监视器中。一般属性可以直接敲入字符或者通过右侧的小按钮来选择;事件处理程序则可以通过双击事件右侧的空白框来让系统创建新的处理子程序,或者单击下拉按钮选择当前可用的子程序。l Color属性这个属性指定的是控件背景的颜色。可以在下拉选框中选择所列的色彩。需要注意的是,所列的色彩中有部分是系统设定的色彩,如clBackground就是Windows默认的背景颜色。因此,在不同的机器上,这些色彩值不一定相同。如果希望指定固定的色彩,可以直接使用色彩值来表示。色彩值的格式为$00AABBCC。这是一个十六进制的表示24bit色彩值。其中AA部分表示蓝色成分的亮度;BB部分表示绿色成分的亮度;CC表示红色成分的亮度。l Enabled属性这个属性用于决定用户是否可以对这些控件进行操作,如修改内容、删除项目等。当这个属性被设置为False时,用户不能通过应用程序界面来修改控件的内容,并且其显示一般也变成了灰色。但是,在应用程序中仍然可以修改控件的内容。l Font属性此属性用于设置显示的字体,包括字体的颜色、大小和其他的特性。l Height和Width属性这两个属性显示的是整个控件对象的大小,包括控件的边框和标题。l Hint和ShowHint属性Hint属性包括一个字符串。如果ShowHint属性设置为True,当鼠标在该控件上停留时,这个字符串就会被显示。这个属性主要用来做简单的操作提示。l Left和Top属性这两个属性显示了控件所在的坐标位置。需要注意的是,它们显示的是相对坐标。如果是一个面板(Panel)中的按钮(Button),则按钮的Left和Top显示的是其相对面板左上角的坐标。因此,如果要确定按钮在整个窗体(Form)中的坐标,还需要进行一定的转换。l Name属性这个是每个控件必须有的属性。通过这个属性我们在编程的时候来区分不同的对象。因此这个属性在一个单元(unit)中是独一无二的。l PopupMenu属性这个属性用于指定右键弹出菜单。系统会提供一个可用的弹出菜单列表用于选择。l Visible属性这个属性用于确定控件的可视性。如果不希望某些用户看到某些控件,可以将这些控件的Visible属性置为False。这样,这些控件就不会在窗体上显示,但是程序仍然可以调用这些控件。l OnClick事件当鼠标单击控件时,将触发此事件。此事件主要用于对用户的操作进行响应,该事件最主要的用途就是实现按钮的功能。l OnCreate事件此事件在控件对象创建之后被触发,主要用于客户的初始化操作。需要注意的是各个控件对象创建的先后关系。在一个控件对象没有被创建之前,不能在程序中调用该控件的属性和方法。2.4.2 窗体(TForm)窗体是我们在Windows编程中必须用到的一个组件,它是其他组件对象放置的地方。当我们启动Delphi时,系统会自动生成一个叫“Form1”的窗体对象。单击窗体的任何部分,我们就可以在对象监视器窗口中查看或修改窗体的属性和它具有的响应事件。l ActiveControl属性这个属性用于指明当窗口第一次显示时,输入光标位于窗体中的哪个控件之上。在窗体上放置可视控件后,这些控件的名称就会显示在属性选择的下拉选框中。l AutoScroll属性这个属性只有True和False两个值,用于控制如果可视控件超出窗体的范围是否自动显示滚动条。因为同一个应用程序在不同的机器上显示的大小比例可能差别很大,所以最好将此属性设置为True,使得用户有办法看到所有的可视控件。l BorderStyle属性Delphi提供了此属性的多种可选项,可以根据不同的需要来选择窗体边框的样式。其中,最特殊的是bsNone选项。选择bsNone之后,在设计期窗体上看不到大的变化。但是运行的时候,窗体将不再显示标准的Windows标题,这为我们提供了一个制作特殊风格的应用程序界面的途径。l Caption属性此属性用于决定窗体标题的内容,一般用于表明此窗口的主要功能,也可以在程序中进行修改。l ClientHeight和ClientWidth属性这两个属性用来确定实际用户界面的大小,这个大小不包括窗体的标准Windows边框。这两个属性将有助于我们了解窗体中各控件实际可用的空间大小。l FormStyle属性FormStyle包括4个可选项:fsNormal、fsMDIForm、fsMDIChild、fsStayOnTop。默认为fsNormal,即普通的SDI窗口。fsMDIForm和fsMDIChild用来设计MDI结构的主窗体和子窗体。fsStayOnTop窗体则将一直处于应用程序中所有窗体的最上面。如果应用程序启动的第一个窗体就是fsStayOnTop,那么这个窗口将会显示在所有Windows窗口的最前面。这个特性可以帮助我们提醒用户登录等操作。l Icon属性这个属性用于选择窗体的标题左侧的图标。单击对象监视器中“Icon”属性右侧的小按钮,会出现如图2-10所示的图片编辑窗口。在这里主要目的是导入外部的图标文件。单击Load按钮就会出现一个图标选择窗口。选择后的图标就显示在编辑窗口中。确认修改后,我们选择的图标就会替换原有的窗口图标。图2-10 图片编辑窗口l Menu属性此属性用来指明窗口的菜单。必须配合Menu控件使用。在实际应用中,我们可以在运行时修改这个属性来针对不同的环境显示不同的菜单。l Position属性此属性用于确定窗口创建之后的位置,包括9个可选项。可以根据这些选项的英文含义来理解。其中,poDesigned表示保持设计器所在的位置;poScreenCenter是显示在整个屏幕的中心位置;poMainFormCenter主要用于MDI结构中使得子窗口显示在主窗口的中央;poOwnerFormCenter则是被另外一个窗口打开时,与该窗口居中对齐。一般常用的属性值是poScreenCenter,这样可以保证在不同分辨率的系统下,窗口不会跑到屏幕外面。l WindowMenu属性这个属性主要用于MDI结构的主窗口,用于指明子窗口列在哪个菜单组中。l WindowState属性这个属性有3个选项:wsNormal、wsMaximized和wsMinimized。用于确定窗口初始化时的状态是普通、最大化还是最小化。l OnClose事件当窗口关闭时,触发这一事件。这个事件主要用于进行扫尾工作,如关闭数据库、保存修改等操作。l OnShow事件当窗口被显示时,触发此事件。相对于OnClose事件,此事件主要用于窗口的初始化操作。OnShow事件被触发时,工程中所有在有效窗口列表中的项目已经被创建,因此可以完成两个单元间的数据交换。2.4.3 标准控件组(Standard)标准控件组用于实现一些基本的功能,如输入框、菜单、按钮等等。这些控件基本上在任何一个程序中都会用到。控件的图标如图2-11所示。1234567891011121314图2-11 标准控件组控件图标1. 菜单(TMainMenu)菜单控件用于设置菜单项提供给窗体使用。在没有被窗体引用之前,设计期菜单对象只显示为一个不可改变大小的图标,并且在运行时不可见;如果窗体的Menu属性设置为指向该菜单,则菜单项将显示在窗体的标题下面。图2-12 菜单编辑窗口菜单控件的主要属性有两个:Images和Items。Images属性指向一个ImageList对象,用于选择菜单项图标的集合。双击菜单对象的图标或者单击Items属性右侧的小按钮,会出现如图2-12所示的菜单编辑窗口。通过填写图中虚框部分的Caption或Name属性就可以向菜单中增加新的菜单项或菜单栏。要创建子菜单,可以右键单击此菜单项,然后选择“Create Submenu”。这些菜单项都属于TMenuItem类的实体对象,主要有以下一些属性和触发事件。l Action属性此属性用于指定ActionList中的默认操作。相当于用Action来代替OnClick事件处理程序。Delphi已经为我们提供了很多通用的操作过程,如窗口的堆叠、排列等。利用这些操作可以大大简化编程代码。l Bitmap属性这个属性用于直接导入BMP图片来指定菜单项的图标。图标指定的过程和窗体的Icon属性设置过程类似。l Break属性Break属性用于将过长的菜单分列显示,一共有3个可选项:mbNone、mbBreak和mbBarBreak。mbBarBreak和mbBreak的区别只在于,使用mbBarBreak时,两列菜单中间会有一条竖的分割线。l Caption属性此属性用于指定菜单显示的内容。可以使用“&”号来指定紧跟其后的字符对应的按钮为快捷按钮,即可用“Alt+字符”来代替鼠标的单击操作。这个特性主要用于键盘输入时快捷操作菜单,避免反复在鼠标和键盘之间移动。如果Caption属性被设置为减号“”,则在菜单上显示为横向的分割线。这样就可以进行简单的功能分组。l Checked属性这个属性设置菜单项是否被选中,主要用于判断当前菜单的状态。当Checked属性值为“True”时,会在菜单项前显示一个勾,以表示该菜单项被选中。l ShortCut属性ShortCut属性有一长串的可选项,包括了Windows所允许的各种快捷键组合,如F1、Ctrl+Q、Ctrl+Alt+W和Shift+Ctrl+F1等。对常用的菜单进行快捷键设置,可以大大提高工作的效率。2. 弹出菜单(TPopupMenu)弹出菜单主要用于设置右键弹出菜单的功能项,设置的过程和MainMenu的设置方法一样。3. 文本标签(TLabel)文本标签主要用于对窗体上的其他控件实现的功能进行简单地说明。主要属性就是Caption,即标签显示的内容。另外,AutoSize属性设置为True时,标签的大小会自动根据Caption内容的长短来确定。但是,Delphi对于中文字体的宽度判断不是十分准确,往往导致部分文字无法显示。这时候我们最好将AutoSize属性设置为False,并且手工设置标签的大小。4. 文本编辑框(TEdit)这是最常用的一个输入框。用于显示文本和输入或修改文本。但是都是单行的文本。该控件主要属性就是Text,这个属性包含显示或输入的字符串。在程序中需要调用用户输入内容的地方就需要读取这个属性值。在设计期时,设置的Text属性值就是程序运行时的初始值。文本编辑框还有一个OnChange事件,当修改其中的文本时触发。这个事件可以用于及时判断用户输入的内容,显示相关的信息。5. 多行文本编辑框(TMemo)多行文本编辑框也是用于输入文本。不同的是,输入的文本可以是多行,就象Windows记事本中的文本。可以用Text属性来访问整个文本,包括回车符;也可以用Lines属性来一行行地访问。Memo对象的WordWrap属性用于设置是否自动回车。ScrollBars属性用于设置滚动条的显示。同Edit一样,Memo对象也有OnChange事件,用于对修改进行处理。6. 按钮(TButton)按钮用于响应用户的鼠标单击操作,因此按钮最重要特性的就是OnClick事件。另外,Caption属性可以设置按钮上的文字显示。ModalResult属性中有一些备选的按钮类型,主要针对以ModalShow的方式显示的窗体的默认操作,如OK、Cancel、Yes、No等。这些默认操作会在ModalShow中返回相应的操作值,用于判断用户的选择。7. 多选项(TCheckBox)多选项用于输入用户的选择。各个项目之间可以独立的选择,互不影响。主要属性包括Caption和Checked。8. 单选按钮(TRadioButton)单选按钮也用于输入用户的选择。但是在一个组或者窗口中,每次只能有一个选项被选中。9. 列表选单(TListBox)这是另外一种类型的选择控件。可选值以列表的形式显示在一个文本框内。这些可选值保存在Items属性中。MultiSelect属性用于设置是否允许多选。10. 组合选框(TComboBox)组合选框是列表选单和文本输入框的组合。即允许在下拉选单中选择,也允许直接输入文本。备选项文本同样放在Items属性中。11. 组合框(TGroupBox)此控件用于集合一组控件,类似于在窗体中的一个小窗体。使得移动一组控件更加简单。12. 单选按钮组合框(TRadioGroup)单选按钮组合框是单选按钮的一个增强,专门用于管理一组互斥选项。要添加单选项,只需要修改Items属性中的文本。每一行文本就是一个选项。而ItemIndex属性指明了当前选择的按钮位置。-1表示没有按钮被选中,0表示第一个按钮被选中,以此类推。13. 面板(TPanel)面板类似于小窗体,同样用于管理一组控件。同时还可以在面板上放置显示画面,例如OpenGL的画面等。14. 操作列表(TActionList)操作列表用于集中各种操作,并且Delphi本身提供了一些常用的操作,可以大大简化代码的编写。双击窗体上的ActionList图标,将出现如图2-13所示的编辑界面。图2-13 操作列表编辑窗口右键单击窗口,会出现包含添加操作(New Action)和添加标准操作(New Standard Action)的菜单。通过这两项,我们可以自定义操作,也可以引用系统提供的操作。如果添加标准操作,则会出现如图2-14所示的选择窗口。从选择列表中我们可以看到包括数据库操作、编辑文本操作、帮助显示和窗口操作,这四大类20多项标准的操作。图2-14 标准操作选择窗口根据操作类型的不同,相应的属性也不尽相同。如数据库操作项目有DataSource属性,其它类型的则没有。每个操作的主要事件是OnExecute,当操作被执行的时候触发。通常就是与操作关联的按钮或菜单被单击时触发。2.4.4 附加控件组(Additional)附加控件组如图2-15所示。主要是对标准控件的增强。12345图2-15 附加控件组控件图标1. 图形按钮(TBitBtn)图形按钮是按钮的增强,允许在按钮中加入图片。这对于设计一个漂亮的界面十分有用。按钮的图片可以通过Glyph属性来设置,同样也会出现一个如图2-10的图片编辑窗口。另外,Delphi也提供了一组默认的图形按钮,这些可以在Kind属性中选择。这些图形按钮包括一些基本的操作,如Abort、Ok、Cancel和Help等等。其中Help类型可以方便地调用Windows帮助文件。2. 屏蔽文本编辑框(TMaskEdit)MaskEdit是单行文本编辑框Edit的一个扩展。在Edit的特性之上,增加了屏蔽属性。通过设定EditMask属性,可以限制文本编辑框中输入的内容。例如,只允许输入数字,或者只允许输入大写字母等。EditMask属性的设置的基本规则如表2-1所列。表2-1 EditMask设置主要规则字符在EditMask中的含义!如果有“!”,表示未填的可选字符以空格放置在字符串首位表示随后的字符为大写字母表示随后的字符为小写字母表示随后的字符不固定大小写表示随后的字符都作为文字保存L表示此位置必须为字母A-Z,a-zI表示此位置为字母A-Z,a-z,但是可以不填A表示此位置必须为字母或数字A-Z,a-z,0-9a表示此位置为字母或数字A-Z,a-z,0-9,但可不填C表示此位置可为任何字符,且必须填写c表示此位置可为任何字符,但可不填0表示此位置必须为数字0-99表示此位置为数字0-9,但可不填#表示此位置可填入数字或加减符号,但可不填:用于分隔时间的时:分:秒/用于分隔年/月/日;用于分隔屏蔽字符的3个区域_用于在字符中插入空格3. 字符串表格(TStringGrid)字符串表格以表格的形式规范和显示字符串阵列。主要属性和触发事件如下:l ColCount和RowCount属性这两个属性用于设定总的栅格数,必须大于固定栅格数。可以在程序中改变这两个属性值来添加或删除行列。添加时,新的行列内容为空;删除时,将外围数据剪切掉。l DefaultColWidth和DefaultRowHeight属性这两个属性用于设置默认的行高和列宽。在程序中可以通过改变ColWidths和RowHeights属性来设置指定行列的高度和宽度。l FixedCols和FixedRows属性这两个属性用于设定固定的行列数,也就是字符串表格中的标题栏,一般显示为按钮的外表。固定的行列数可以为零,但是不能超过总的行列数。l Cells属性Cells属性是个数组,用来访问字符串列表中指定行列的数据。在设计器中这个属性不显示在对象监视器中,主要是在程序中进行修改。因此,如果有标题栏,需要在创建时用程序指定。4. 图像控件(TImage)图像控件用于显示和修改图像。其主要属性如下:l AutoSize属性此属性为布尔值。当值为True时,控件会自动适应图片的大小。也就是图片以1:1的比例进行显示。最好配合带滚动条的窗口来使用,以免破坏整体的布局。l Center属性这个属性用于确定图像在显示框中是否居中对齐。因为图像的主体通常在中间位置,使用这个属性,可以让主体首先显示出来。l Picture属性此属性用于导入图片,同样会出现如图2-10所示的界面。允许导入的图片类型包括BMP位图、JPG压缩格式、ICON图标和Windows默认矢量图形WMF等。但是只有在BMP格式下,允许是用Picture的BitMap属性来读取或修改图像中像素点的色彩值。如果格式不匹配,一调用BitMap属性就会将图像清空。因此JPG之类的图像,需要先转换成BMP才可以编辑修改。l Stretch属性这个属性用于将图像按照控件的大小进行缩放,形成一个缩略图。主要用于简单的识别或者并不关心细节的场合。l Transparent属性此属性用来确定图像是否允许透明显示。5. 图表控件(TChart)这是由第三方提供的一个用于绘制统计图的控件。双击这个控件会出现如图2-16所示的编辑界面。可以看到允许设置的内容很多。主要包括两大块:一是整个图表的显示属性;二是图表内系列曲线的显示属性。图2-16 图表控件编辑窗口图表的显示属性包括:一般属性(General标签页),可以设置页边距和滚动条等属性;坐标轴属性(Axis标签页),用于设置坐标轴显示的位置和刻度;标题属性(Titles标签页),用于设置图表标题显示的内容、字体和位置等属性;坐标系列数据显示属性(Legend标签页),用于确定各数据点坐标列表显示的位置;面板属性(Panel标签页),用于设置曲线所在区域的背景、边框等属性;分页属性(Paging标签页),用于确定每页显示的数据点数,从而进行分页;墙壁属性(Walls标签页),用于三维显示时,左侧、底部和背面三部分的色彩和字体等设置;三维属性(3D标签页),用于设置三维显示的深度、角度等属性。系列曲线的显示属性,必须在创建图表系列之后才能设置。创建图表系列的方法是在整体图表显示属性的Series页单击“Add.”按钮。此时会出现如图2-17所示的“TeeChart Gallery”。在Standard标签页,有11种图表类型可以选择;在Functions标签页,则有7种运算法则。另外,可以选择是否使用三维显示。单击“OK”按钮后,即创建了一个图表系列。图2-17 图表类型选择窗口当创建了图标系列后,图表编辑窗口中的系列编辑页(Series标签页)中,就会出现图表系列的一些可编辑项:格式设定(Format标签页),用于设定线条的粗细、模式和颜色等;数据点显示特性(Point标签页),主要设定是否在曲线上显示数据点和数据点的大小形式等属性;普通设定(General标签页),这儿的设定和整个图表显示属性的设定有些类似,可以修改坐标、数据点数据列表和数据格式等属性;标签设定(Marks标签页),标签是对数据点的说明,内容可以包括X轴或Y轴的数据、所占的百分比和数据点的标识等;数据源定义(Data Source标签页),这是最重要的一项,可选择的包括无数据(None)、随机数(Random Values)和函数(function)。图表显示所需的实际数据可以用TLineSeries的AddX、AddY或者AddXY函数来追加。2.4.5 BDE数据访问控件组(BDE)数据访问控件组中的控件是数据库应用程序中经常要用到的。它们负责连接到数据库,并且从数据库提取数据。但是这些控件不直接用于显示数据,因此都属于不可视控件。控件组成员的图表如图2-18所示。123图2-18 数据访问控件组1. 数据表(TTable)数据表是主要的数据提取控件之一。不过,使用这种控件时,数据库将返回数据表中所有的数据。因此,数据交换量很大。使用该控件的好处是可以直接提交修改的内容。其主要属性如下:l Active属性此属性为布尔值。当设置为True时,会尝试连接数据库,并且提取指定的数据。在设计期,可以用来检查设置条件是否正确。l DatabaseName属性此属性用于指定所要连接的数据库名称。这些数据库都是在BDE中注册过的。l Filter和Filtered属性这两个属性用来控制过滤条件,以显示适当的记录。Filter中保存的是一个过滤条件字符串,一般形式为“ID12”。Filtered是一个布尔值,用于控制是否使用过滤条件。l MasterSource和MasterFields属性这两个属性主要用于建立主细表,即用另外一个表的某个字段值来限制数据表的显示内容。MasterSource必须指向一个TDataSource控件对象。单击MasterFields属性右边的小按钮,会出现如图2-19所示的设置界面。在上方的左右两个框中分别有主细表的字段列表,可以通过中间的“Add”按钮来建立字段之间的连接关系。图2-19 主从关系设置界面l ReadOnly属性此属性用于确定提取的数据是否允许修改。l TableName属性这个属性用于指定数据表的名称。当DatabaseName属性设置正确时,系统会自动连接到数据库,并且列出数据库中可用的数据表。2. 查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 废旧空调再生资源项目可行性研究报告
- 蚯蚓养殖开发项目可行性研究报告
- 防汛知识培训提纲
- 防汛气象知识培训课件
- 智慧工会信息化建设方案
- G技术在智慧城市建设中的应用案例
- 国际旅游法律冲突-洞察及研究
- 分期付款买卖合同当事人的权利保护相关知识4篇
- 2025年高考政治总复习生活与哲学知识速记手册(完整版)
- 实习生协议书范本(版)5篇
- 禁毒预防药物滥用
- 电能质量技术监督培训课件
- 正常血细胞形态学课件
- 精障风险评估报告
- 股东大会制度法理研究
- 译林版八年级上册英语书后单词默写
- (部编版)小学道德与法治《学习伴我成长》完整版课件
- 事业单位会计报表附注参考格式
- 六年级六班书香班级申报材料
- 引水罐设计计算书-2
- 应急车辆维护与保养方案
评论
0/150
提交评论