Delphi快速入门.doc_第1页
Delphi快速入门.doc_第2页
Delphi快速入门.doc_第3页
Delphi快速入门.doc_第4页
Delphi快速入门.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

27第1章 Delphi快速入门第1章 Delphi快速入门Delphi是一种全新的可视化编程环境,一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language),是当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,将会发现编程不再是枯燥无味的工作Delphi的每一个设计细节都将带给您一份欣喜。1.1 Delphi的基本概念1.1.1 Delphi的基本形式Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在“骨架”上即使没有附着任何东西,仍可以严格地按照设计来运行。程序员的工作只是在“骨架”中加入自己的程序。默认的应用程序是一个空白的窗体(Form),运行它,将得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大、缩小、移动、最大化、最小化等,但却不需编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户的开发应用程序打下了良好的基础。Delphi已经做好了一切基础工作程序框架就是一个已经完成的可运行的应用程序,只是不处理任何事情。所需要做的只是在程序中加入完成所需功能的代码而已。在空白窗口的背后,应用程序的框架正在等待用户的输入。由于并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的覆盖物下面,这样用户可以不为它们所困扰,轻松从容地对可视组件进行编程。1.1.2 面向对象编程的概念面向对象的语言,相对于以前的程序设计语言,代表了一种全新的思维模式,这种全新的思维模式能够方便、有效地实现以往方法所不能企及的软件扩展、软件管理和软件复用,使大型软件的高效率、高质量的开发、维护和升级成为可能,从而为软件开发技术扩展了一片新天地。面向对象的程序设计(Object-Oriented Programming,OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、容易编写。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的麻烦比好处多。而Delphi是完全面向对象的,这就使Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。一些早期的具有OOP性能的程序语言,如C+、Pascal、Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。Delphi的推出填补了这项空白。用户不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。要生成漂亮的界面和结构良好的程序,也丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的Object Pascal语言。这种革命性的组合,使可视化编程与面向对象的开发框架紧密地结合起来。1.2 Delphi可视化开发环境简介1.2.1 进入Delphi的可视化编程进入Delphi的可视化编程和运行普通的Windows应用程序一样,有以下几种方法。1. 从任务栏的“开始”“程序”菜单进入安装完Delphi之后,安装程序会在“开始”“程序”菜单中添加Borland Delphi 7菜单及其菜单项,如图1-1所示。2. 利用资源管理器进入利用资源管理器打开Delphi 7所在文件系统的目录,双击Delphi32.exe文件名(在安装过程中如果选择了默认安装模式,Delphi32文件在Program FilesBorlandDelphi7Bin目录下),如图1-2所示。3. 从桌面进入利用资源管理器打开Delphi32.exe所在的目录,用鼠标单击Delphi32文件,并将其拖到桌面上,这样就创建了进入Delphi 7 的快捷方式,启动时只需双击快捷图标即可,如图1-3所示。图1-1 从任务栏中进入图1-2 从资源管理器中进入图1-3 从桌面快捷方式进入1.2.2 Delphi可视化编程环境介绍Delphi启动后,将显示如图1-4所示的可视化编程环境。首次运行Delphi,屏幕上会出现如下5个主窗口:(1)标题为“Delphi7-Project1”的Delphi主窗口。Delphi的主窗口位于屏幕的上端,包括主菜单、工具栏和组件板。(2)对象Tree View(Object Tree View)。(3)对象观察器(Object Inspector)。(4)标题为 “Form1”的窗体设计器。(5)标题为“Unit1.PAS”的代码编辑器,刚启动时这一窗口的大部分被窗体设计器所覆盖。按键,可以在窗体设计器与代码窗口之间进行切换。 对象Tree View 对象编辑器 主窗体 窗体设计器 代码窗口图1-4 Delphi 7可视化编程环境1.2.3 对象编辑器对象编辑器(Object Inspector)是进行可视化编程时使用最为频繁的工具之一。设置窗体和控件的属性、切换设计对象以及为窗体、控件选择或添加事件处理过程等操作都在其中进行。对象编辑器由“对象”列表框、“Properties”(属性)选项卡和“Events”(事件)选项卡组成,如图1-5所示。图1-5 对象编辑器q “对象”列框表:位于对象编辑器上部的下拉列表框,其中显示了窗体上所有对象的名称和类型,包括窗体本身。可以通过对象列表框在窗体中的各个控件之间切换,也可以快速地回到窗体本身。q “Properties”(属性)选项卡:显示窗体中当前被选择对象的属性信息,并允许改变对象的属性。其中左边一栏是属性名,右边是属性值。q “Events”(事件)选项卡:列出了当前对象可以响应的事件信息。其中,左边是事件名,右边是响应事件的过程名。若过程名是空白,说明还未定义相应的事件过程。1.2.4 工程管理器工程管理器(Project Manager)管理工程中的各类文件的添加、删除和打开。可使用ViewProject Manager激活窗口。通过工程管理器可以了解工程的构成,文件的名称和文件所在的路径,可以单击New按钮创建新的程序单元(如窗体),单击Remove按钮可以从工程管理器材中删除文件。具体的应用在本章的后面会讲到。1.2.5 代码编辑器代码编辑器是程序代码的输入和编辑工具,尽管可视化编程技术的运用大大减轻了程序员编写代码的工作量,但并不能完全取代原始的代码编写工作。代码的编写仍然是整个程序设计的核心,一个程序的好坏将部分地取决于代码的编写。代码编辑器是Delphi提供的一个功能强大、使用方便的代码编写工具,它能提示和帮助程序员完成代码的编写。代码编辑器是一个选项卡风格的文本编辑器。通过选项卡标签可以选择要编辑的文 件。当程序中含有不止一个窗口时,会有几个单元的源程序出现在代码编辑器中,如图1-6 所示。图1-6 代码编辑器代码编辑器的标题栏中显示了当前正在编辑的单元文件名。要查看某一特定程序的源代码,只需用鼠标单击写有该单元文件名的标签,就可以对该单元文件进行编辑了。当单元文件较多时,选项卡右上方的导航按扭可以左右滚动选项卡标签,以便找到所需要的单元文件。1.2.6 CPU观察器CPU观察窗口可以打开一个应用程序的低层次状态的视图,它由Disassem bly Pane(上左)。Registers Pane(上中),Flags Pans(上右),Memory Dump Pane(下左)和Machine Stack Pane(下右)5个窗口构成,如图1-7所示。在程序运行时,使用ViewDebug WindowsCPU可以激活窗口。图1-7 CPU观察器1.3 可视化组件用法简介本节中,将较为深入地讲解Delphi的组件,这是编制大型复杂应用程序的必由之路。下面将对各组件分类进行简单的介绍,以便于在编程时能较快地了解有哪些组件可能满足要求,并对其重要的方法、属性等有一个大致的了解。1.3.1 常用的文本相关组件常用的文本组件包括Label(标签)、Edit(文本编辑)、MaskEdit(格式编辑)、Memo(备注)、List Box(列表框)、Combo Box(组合框)。除了MaskEdit在Additional页之外,其他的都在Standard页中。这些用来显示各种格式的文本,其中有些是文本和数据输入的途径。1Label组件Label(标签)一般放在对象的旁边,用来标记这些对象,从而对用户的操作进行提示,也可以用来显示其他信息。可以在标签中设置热键,也即在Caption属性值段中输入含有“&”的字串。当使用“Alt+关键字母”时,将自动选中它所指向的对象。方法是设置Label组件的FocusControl属性,在值段中,选用与它关联对象的对象名。2Edit、MaskEdit和Memo组件Edit、MaskEdit、Memo组件都是用于接收、显示用户输入文本的。它们具有一些相同的属性。属性ReadOnly在运行时间内控制对象是否可以进行Windows的操作,当此值为False时,该框内的文本就不能被复制到剪贴板上。属性MaxLength可以设置输入文本的长度限制。用PasswordChar属性可以按照显示隐蔽密码的方法显示用户输入文本,例如,它的默认值为“*”,运行时,用户的输入将用“*”来显示,从而提供了一种安全机制。当一个字段被加上高亮度显示时,按键操作会将这一字段删除,替换成当前的键盘输入。这种设置为操作提供了方便,不必每次先删除原来的文本;但也可能会导致误删文本。将AutoSelect属性设置成False,这种替代功能就被取消了。MaskEdit是格式文本输入对象。它的EditMask属性为它提供了过滤文本的格式。单击这一属性的省略按钮,会弹出过滤编辑对话框(如图1-8所示),除了Delphi提供的几种屏蔽格式,用户也可以自己编写,查阅“帮助”,会提供更详细的用法介绍。图1-8 过滤编辑对话框Memo是备注框,与以上对象不同的是,它可以接收多行文本输入。将ScrollBars属性设置成ssVertical,可以为它加上一个垂直的滚动条。Align属性调整该对象在窗口中的对齐情况,有alNone(无对齐指定)、alBottom(底部对齐)、alClient(全窗口显示)等可以选择;而Alignment属性则决定了文本在框中的对齐显示格式。Lines属性访问的文本被存储在一个TStrings对象中,单击它的省略按钮,可以通过对话框向它添加文本,也可以用程序对这一属性进行操作,以达到修改或添加备注文本的目的。3List Box和Combo Box组件List Box(列表框)和Combo Box(组合框)都显示列表项目,所不同的是组合框占用较少的空间。常见的Windows操作系统中,显示可用磁盘驱动器时,用的就是组合框。列表框则提供了一个项目列表以供选择,如Windows打开文件操作时显示文件列表的就是List Box。1.3.2 按钮和复选框组件1Button和BitBtn组件按钮是Windows常用的组件,可以利用其中的Caption属性来改变按扭的名称。作为执行某种功能的指示,也可以设置内置返回功能,将ModelResult属性加以匹配,可以不用编程,直接实现系统内置的功能。2Speed Button组件Speed Button(加速按钮)组件在Additional页上,是进行工具条快速设计的理想组件。它只有一个位图,没有标题。需要注意的是,用多个Speed Button制作一个工具条时,必须先放置一个窗口类,如Panel(操作板)、Group Box(群组框)等。否则,试图将加速按钮先制作好再移上去,会发现加速按钮会总是处于窗口类组件下面不可见。当然,可以对加速按钮进行复制、粘贴到窗口类组件上处理,那就另当别论了。3Check Box与Radio Button组件Check Box(复选框)和Radio Button(单选按钮)组件通常是相提并论的,多用作接收用户“是”或“否”的输入判别。一般都是成组的放置在Radio Group或Group Box组件中。所不同的是,成组的Radio Button是“互锁”的,用户选择定一个后,其他的将自动设置为不选;而Check Box组件则是分立的,可以同时选中其中的几个,也可以一个都不选。1.3.3 分组、分界组件分组组件把其他的组件组合成一组,例如上述的单选按钮组件Radio Button,就需要放入以下的成组组件中。分界组件用于在窗口中产生边界和区域,以区别于其他区域。1Group Box、Radio Group及Panel组件Group Box(群组框)、Radio Group(单选按钮组)组件都可以将组件分类、成组。两组件均有标题,可以用文字表征成组组件的标题或信息。Radio Group可以进行Column和Item属性的设定,以决定其上的单选按钮的提示文本及显示格式。Panel组件也可以达到将组件分组的目的。通过编程向窗口加一个操作板组件,以书写提示和帮助信息,也不失为一种好方法。以上三个组件都在Standard页。2NoteBook、TabSet及TabbedNoteBook组件记事本组件NoteBook一般和标签集组件TabSet共同使用,用来创建含有标签的重叠多窗体窗口。Pages属性包含了一个页名列表,在编程时,将TabSet的Tabs属性设置成NoteBook的Pages属性,就可以使页标签和相应的窗体对应起来。另外一个组件TabbedNoteBook是带有标签的多窗体窗口,不过,它的页标签设在窗 口的上面。它们相当于多个分组组件的集合,每次查看其中的一页。以上三个组件在 Win 3.1页。在Win 32页上有TabControl、PageControl等组件。它们对于生成Windows风格的标签集是很重要的。3分界组件在Win 3.1页上,还有Header(表头)组件,它在窗口中产生一个凸起的题条,提供了一个可视化的文本显示区域。Additional页的Bevel(立体框)组件提供了一个方框,它的单一线条或整个边框都可以通过Style属性设置为外凸或内凹,可以美化窗口。在Win 32页上有HeaderControl、StatusBar等组件,为使用Windows风格的界面提供了重要元素。1.3.4 图形、图像组件1Image组件图像组件Image在Additional页上,用来在窗口中显示一幅图片,可以在picture属性中调入图像文件。Delphi支持位图(.BMP)、图标(.ICO)、图元(.WMF)、JPEG图像文件(.JPG、.JPEG)和放大的图元文件(.emf)几种文件格式。比较重要的属性是Autosize和Strech。它们决定了图像在窗口中的显示尺寸。Autosize属性为True表示按原尺寸显示,Strech属性为True表示图像按对象图框的大小显示,这时图像的大小可以随意改变。2Shape组件图形组件Shape可以处理多种几何形状,通过设置Pen和Brush的嵌套属性,可以设置图形边框颜色、线型及图形的风格、填充方式、贴图方式等。3PaintBox组件在System页上还有一个PaintBox(绘图框)组件,它在窗体上提供一块可供绘图的区域。这一组件需要编程实现它的功能,一个只有在运行时才有效的重要属性Canvas是完成绘图的关键。PaintBox组件不能单独存在于窗体中,必须把它放在固定的分组组件中。1.3.5 关系图、文件列表组件1OutLine组件OutLine(略图)组件在Win 3.1页上,它适用于显示分层的数据、文本。在Delphi中,略图组件具有很宽的设置范围。它的Lines属性可以设置每一词条的文本或数据。一般一个空格相当于一个层次,如果在项目前加一个空格则表示它处于树的下一层。所以在进行Lines属性编辑的时候不能用Tab键。在编程时用Lines和Items属性来访问略图的名称、索引及完整的路径名。OutLineStyle属性用来配置显示时关系图的风格,可以选定用旁边有图标的缩进方式,也可以选择连线方式。2目录访问组件Delphi在System页中提供了强大的文件目录访问组件。可以针对具体的用途设计自定义的文件对话框。它们是文件列表框FileListBox、目录列表框DirectoryListBox、驱动器下拉式列表框DriveComboBox和过滤式下拉列表框FilterComboBox组件。文件列表框组件FileListBox显示当前目录中的文件,默认的设置是显示所有文件。通过改变Mask属性来设置过滤器,可以使用DOS的标准通配方式,选择要显示的文件名。当指定多个过滤器时,之间用“;”隔开。目录列表框组件DirectoryListBox显示当前驱动器内的目录,并且允许用户在程序执行时切换目录。Column属性决定目录在窗口中用多少列进行显示,当窗体空间不够时,用几列进行显示将有助于全面地显示目录信息。在Delphi中,当窗口空间显示不下全部信息时,将自动加上滚动条,以方便用户操作。驱动器下拉式列表框组件DriveComboBox显示当前所在的驱动器,并且在执行时允许用户在驱动器之间切换。程序员在应用这一组件时,应考虑当用户选择到不存在的驱动器时,进行容错、提示处理。FilterComboBox(过滤式下拉文件列表框)组件显示当前文件过滤器类型,例如*.*,*.pas等。在执行时允许用户在下拉列表框中选择要显示的文件类型。对Filter属性进行初始化,就会得到下拉式列表框。除了以上的四个组件外,在Sample页上,Delphi还提供了一个目录略图组件DirectoryOutline。它将当前磁盘中的目录结构显示成一个多层次的略图,也允许用户在运行时进行目录的层次显示切换。1.3.6 滚动组件1ScrollBar组件ScrollBar(滚动条)是在Windows应用程序中常见的结构,在Delphi中多数组件有自己的是否加入滚动条的属性ScrollBar,但一个独立的滚动条组件仍是很有意义的。它在组件选项板的Standard页,提供一种可以改变菜单或是画面中可见部分的工具,可以以一定的增量在一定范围内滚动。Position属性是个整形值,如果需要以动态的方式显示滚动条,可以在程序中通过操作这一属性来实现。2ScrollBox组件ScrollBox(滚动框)组件是加上了水平、垂直滚动条的群组框组件,它在Additional页上,用于在窗体中提供一个可以多方向滚动的工具。如果只想显示较大幅面的一个部分,并允许用户对其进行滚动操作,ScrollBar将是理想的选择。可以先在全幅面的滚动框中进行全面设计,然后适当地缩小外框,两个方向的滚动条将自动显示。它的Position属性是集成在HorzScrollBar和VertScrollBar两个集属性下的,编程时,可以选定这两个属性进行操作。3几个进度显示组件在System、Sample、Win 32等页上,Delphi还为用户提供了几个组件,完成显示进度,增量等操作。组件Gauge可以显示成长条状的或饼状的进度指示仪表。例如在安装软件时,可以编程让这一组件显示目前安装的百分比。微调按钮组件SpinButton含有指示向上、向下的两个按钮,它可以用来调节数值,使被控制的值按一定的增量单位由用户进行递增或递减。微调编辑框SpinEdit是微调按钮和编辑框的结合,它在编辑区域显示了数值,又在右侧设了微调按钮,使得用户选择调节按钮或改变数值的方式来调整数据的值,并返回Value属性。其他的此类组件,因篇幅限制,此处不作赘述。具体组件的信息,按照名称在在线帮助中查询其方法、域及应用实例,可以得到详细应用资料。1.3.7 网格、表格组件在Additional页中,还有字符串表格组件StringGrid,绘图表格组件DrawGrid等。它们可以用来模拟按网格排列的事物,如成排的按键、操纵钮、字符串等。属性RowCount和ColCount设置了在网格中显示的行列的数目,设置FixedCols和FixedRows的值,可以固定一些行列避免运行时被改变。Options集属性含有字符串表格组件的显示方式、操作方式等,可以查阅帮助获得详细的信息,此处不再一一讲述。图形表格组件DrawGrid使用户可以用表格的方式显示非文本的数据,它的应用面比字符串表格组件更为广泛,可以把图片和文本一起放在网格中。颜色网格组件ColorGrid在Sample页上,它提供控制前景色和背景色的界面,通过属性ForeGroundColor和BackGroundColor可以访问到,也可以通过程序,把得到的颜色赋给其他对象的颜色属性。Sample页的日历组件Calendar也是用表格的方式表现的,它提供了一个简单的以月份为库单元的日历表格,通过设定Year和Month的值,可以得到相对应的月份的日历。1.3.8 多媒体(MultiMedia)和OLE组件媒体播放器组件MediaPlayer和OLE组件在System页上。媒体播放器组件在处理多媒体文件时很有用。它显示一个VCR风格的控制面板,可以记录或播放多媒体的图像、声音文件。通过属性的设定来控制组件上的各个按钮,如改变显示颜色、增减按钮数目等,改变一下ColoredButtons、EnabledButtons、VisableButtons的各个子属性值,就不难发现它们控制的显示效果。具体的应用请参阅帮助以及后文的详细介绍。OLE客户端组件OLEContainer在窗体中创建一个OLE用户区域,用于与Delphi外部的某个对象进行接口。若对外部的Paradox表格、Word文件、扩展页等进行操作,则对象本身的应用程序必须支持OLE操作。Delphi提供了支持OLE应用的对象清单,右击在窗体中已插入的OLE组件,选择Insert Object就会显示出来。具体的应用,请查阅帮助或阅读后文的详细阐述。以上介绍了Delphi的基本可视组件。读者可能会发现,在Stardrad页最前面的两个组件MainMenu和PopupMenu还没有提及。因为这是建立菜单的重要、基本的操作,我们将在1.4节中作详细的介绍。另外,在下文中还将介绍比较重要的不可视组件。至于数据库组件、动态数据交换DDE组件等,因为在后面章节中有详尽的用法介绍,此处不赘述。1.4 使用非可视组件1.3节介绍的各种组件,在设计和运行时的形式是一样的。本节所介绍的组件,在运行时被隐蔽地嵌入到窗口中,它们本身并不做任何事情,必须被用户的程序所支持才能发生作用。因为组件的设计形状和运行状态并不相关,所以,这种组件在设计窗体中的位置无关紧要,可以放在窗体上不影响其他可视组件的任何位置。这种组件,称之为非可视 组件。1.4.1 使用菜单组件主菜单MainMenu和弹出式菜单PopupMenu是Standard页上的重要组件。菜单组件含有内置的交互设计器。在设计菜单时,可以用菜单设计器Menu Designer进行工作。应用程序的菜单有两种形式:MainMenu是一般的Windows用户界面必须的组件,它显示在固定的位置,一般用键盘和鼠标左键来激活菜单的功能项;PopupMenu是弹出式菜单,例如一般以鼠标的右键或其他快捷键来激活菜单;菜单的位置是在屏幕上“浮动”的,根据鼠标的当前位置决定。1进入菜单设计器Menu Designer创建菜单时,首先要在窗体中放置一个菜单对象。然后调入Menu Designer进行菜单的详细设定。用两种方式可以进入Menu Designer:选中菜单组件,单击属性中Items省略按钮;或在菜单组件上双击左键,就会出现Menu Designer(如图1-9所示)。图1-9 菜单设计器(Menu Designer)2创建菜单的各个项目进入Menu Designer,会发现在菜单的第一项位置上有加亮显示。输入顶层菜单项(实际上是在设定顶层菜单项的Caption属性)并回车。一项菜单条设置完后,加亮显示的位置被移至下拉菜单的下一项,同时,主菜单顶层上会出现虚线框,指示出下一个顶层菜单项的位置。要包含一个隔离条,可以输入“-”并回车。逐步输入菜单的各项,用鼠标左键切换到下一个顶层菜单,直到菜单完成。3设定加速键和热键设定加速键,只需在输入时将“&”放到需要指定为加速键的字母前面,该字母将用下划线显示,运行时,按“Alt+加速键字母”可以激活该菜单条。设定热键也是很方便的,只需在Object Inspector中该菜单条的ShortCut属性值段的下拉菜单中,为它选定一个热键组合即可。在运行时,通过“Ctrl+热键字母”来激活菜单条。加速键和热键并不矛盾,也可以同时指定它们。4. 使用Menu Designer的弹出式菜单Menu Designer中还有一个弹出式菜单,它提供了高频菜单创建命令,并可以对模板选项进行快速访问。在菜单设计器窗口中右击,或将光标停在菜单设计器上,按Alt+F10,可以调出Menu Designer的弹出式菜单。使用Menu Designer的弹出式菜单中的Insert From Template可以向菜单添加菜单项、删除菜单项等操作,还可以对标准主菜单模板进行添加、删除、插入等操作。为菜单编制功能。可以双击菜单条,或在特定菜单条的Events页上,双击它响应的事件的值段,Delphi将回到代码编辑器,光标停在事件对应的事件处理过程中,可以为菜单编制实现任务的代码。如果已经为Speed Bar上的加速按钮编制了事件处理过程,而需要把相应的菜单项连接到事件处理过程上,则只需在该菜单项的Events页的OnClick事件后,输入事件处理过程的名称即可。这样单击菜单项便和单击加速按钮实现同样的功能。5创建嵌套菜单创建嵌套菜单也是重要的手段。Delphi的嵌套菜单风格是嵌套菜单列在它上层菜单的边上,如图1-10所示。创建嵌套菜单,把加亮条移到它的上层菜单条上,按Ctrl+键,将弹出子菜单,就可以按照以上所述的方法进行创建工作了。通过拖放操作,可以实现菜单条的重新定位。用鼠标左键按住某一菜单条,移动到菜单的某一位置,释放左键,菜单条即得到重新定位。菜单设计器允许菜单条在顶层下移动位置,支持菜单条在嵌套菜单中移进、移出,甚至可以将菜单条在各个顶层菜单下属的菜单间移动与定位。6给菜单加提示(Hint)在菜单中加提示是很好的习惯。这样在运行菜单功能前,可以对菜单的任务有一个简略的了解。在菜单条任一项的值段按F1,可以查阅在线帮助,在帮助的正文中找到OnHint并查阅它的例程,将DisplayHint等方法的例程复制到程序中。然后,在菜单条的Hint属性中加入提示正文,运行时当用户将鼠标移到菜单项时,在窗体的底部状态行中会出现Hint属性中的提示信息。图1-10 创建嵌套菜单的界面7菜单的其他属性简介菜单还有其他的一些属性。Enabled属性决定菜单是否被禁用,这在编程中可以实现一定情况下不允许使用某项菜单。Checked属性表征了菜单项的开关情况,当Checked为True时,菜单条的前面会出现选中标志。Visible属性控制菜单隐藏与否。设置这一属性可以实现多版本的菜单。被隐藏的菜单项以及它的子菜单都是不可见的,或是不可访问的。Popup Menu在用Menu Designer时是完全相同的。只不过它在运行时和主菜单的激活形式有所不同:它是用鼠标的右键激活的。弹出式菜单在一定的窗口范围内激活,所以必须将窗口和弹出式菜单联系起来。在设计完PopupMenu后,须在Name属性中为它命名,然后把这个名称赋给窗体的PopupMenu属性。这样,窗口会接收右键输入,并激活弹出式对话框。1.4.2 使用计时器组件Timer计时器组件Timer在System页上,它能够有规律地触发OnTimer事件,发送信息给应用程序。它是编制应用程序时最为重要的组件之一。1Timer的重要属性Enabled属性表示了计时器打开还是关闭;用Interval属性设置两个OnTimer事件间的间隔,单位是ms。将间隔置为0相当于关闭计时器,Interval的最大允许值是32767,即32.767s。2使用Timer对程序进行控制计时器是独立的对象,在启动与Windows无关的逻辑和应用事件时极其有用。如用计时器可以模拟时钟或计时器,可视地显示经过的时间;可以用作系统延时,Delphi提示信息只需在该区域停顿几秒,就是Timer应用的一个例子;可以检查系统环境、事件,根据结果进行响应;也可以在窗口中闪烁一段正文或图像,提示某种操作或处理正在进行。在窗体中放置一个计时器Timer组件,将它的Interval属性置为100,双击组件进入代码编辑器,在它的事件中加入这样一句程序: MessageBeep(0);运行时,会有规律地发出“叮”声。尽管Delphi的计时器每秒可以产生1000次激发,在编程中还必须注意程序对计时器激发的响应。如果程序处理OnTimer事件的时间超过Interval的设定值,就可能错过事件,因为当下一次激发到来时,系统正忙于处理上一事件,则这次激发就会被忽略。同时要注意其他的Windows应用程序是否会影响计时器的触发。如果后台正运行着一个占用处理器的程序,就可能会导致Timer的触发不准确,从而使前台程序运行出现错误。1.4.3 使用公用对话框组件Delphi在Dialogs页上提供了几个标准对话框,它们是打开文件OpenDialog、保存文件SaveDialog、打开图像OpenPictureDialog、保存图像SavePictureDialog、字体FontDialog、颜色ColorDialog、打印PrintDialog、打印设置PrintsetupDialog、查找FindDialog、替换ReplaceDialog、页面设置PageSetupDialog等组件。1. 调用标准对话框可以发现,除了Font、Find、Replace对话框之外,其余标准对话框的Events页都是空白的。因为它们本身是不可视的对话框形式,所以不能响应标准的鼠标键盘操作,只能在程序中调用它们。在编制应用程序时,可以先设计好主菜单。在需要使用标准对话框的菜单项的事件处理过程中,调用标准对话框的Execute等方法,以满足设计需求,即响应菜单命令弹出标准对话框。2OpenDialog和SaveDialog组件OpenDialog和SaveDialog组件处理文件的打开与保存,它们拥有完全相同的属性域。DefaultExt属性表示默认扩展名。当用户没有输入文件的后缀时,可以为用户文件自动加扩展名。FileName属性指定出现在FileName正文框中的默认文件名。Filter属性提供了文件过滤器。FileEditStyle决定在输入文件名时用Edit还是ComboBox;设置为fsComboBox时,允许使用历史列表HistoryList属性,这在应用程序需要经常选择文件时,可以节约大量的时间。HistoryList属性保存有在File Name下拉式编辑框中显示的文件名,使用TStrings的省略按钮可以编辑历史列表。也可以编程实现将HistoryList属性设为以前用OpenDialog打开的文件名历史列表。OpenPictureDialog和SavePictureDialog组件的使用基本与OpenDialog和SaveDialog组件的使用相同。3ColorDialog和FontDialog组件颜色对话框ColorDialog在前文的例程中已经用过,其更详细的功能如Options的设定请查阅在线帮助。字体对话框Font可以帮助用户获取各种方式的字体。使用OnApply事件,可以使得Font对话框中包含一个Apply按钮,单击它,对话框中设定的字体会立即应用到指定的对象中,而对话框仍然是打开的,这样更便于观察修改的结果。4PrintDialog和PrintSetupDiaog组件打印对话框PrintDialog和打印设置对话框PrintSetupDialog可以显示标准打印、打印设置对话框,支持打印文件和打印设置功能,设置它的Options属性可以规定对话框的表现形式。5FindDialog和ReplaceDialogFindDialog和ReplaceDialog提供了查找和替换两个对话框组件,对于寻找和替换文本是极其有用的。在FindDialog和ReplaceDialog中都有OnFind事件,当用户单击寻找对话框中的Find Next按钮时将触发这一事件。FindText属性中保存了用户在Find What编辑框中输入的文本。在ReplaceDialog中还有OnReplace事件,当用户单击替换对话框中的Replace和Replace All按钮时将触发OnReplace事件。FindText和ReplaceText属性分别保存了用户在Find What和Replace With编辑框中输入的文本。6PageSetupDialog组件PageSetupDialog用于对页面进行设置,可以在PageHeight和PageWidth属性中对纸张的高度和宽度进行设定,并在Units属性中设定单位。1.5 使用Delphi的工程管理、设计工具Delphi是完备的工程设计系统,除提供了大量的可视化编程组件和简单方便的设计方法外,还备有功能强大的工程管理、窗口设计工具。1.5.1 创建多窗体工程项目绝大多数的应用程序都用到不只一个窗口,Delphi允许用户创建多文档界面(MDI)应用程序。应用自动创建窗体、窗体样板、对话框向导、应用向导等,可以使得创建应用程序更为方便快捷,而且可重复利用,大大地降低了工作量。选择主菜单的FileNew项,在New页中,选择Form样板,Delphi会自动创建一个空窗体Form2,并可以在其上进行设计,例如加入标签以显示各种信息、加入图片帮助说明等。将Form2的BorderStyle属性设置为bsDialog,则窗口成为运行时不能改变大小的对话框。上面介绍了简单地生成一个双窗体应用程序的过程,应用程序启动时将自动创建第二个窗体。窗体保持隐蔽状态,但仍然占用Windows的资源。在大型应用程序中,有时不希望在应用程序加载时自动创建所有窗体。Delphi可以指定哪些窗体被自动创建。选择ProjectOptions选项,Delphi显示Project options对话框。如果Forms不是当前页,按动下标签使之可见。1.5.2 使用工程管理器当窗体的数目逐步增加时,跟踪窗体以及与之相连的库单元代码就变得比较烦琐。用Delphi提供的工程管理器Project Manager可以使管理各种窗口更为方便。选择ViewProject Manager选项,或使用快捷键Ctrl+Alt+F11,可以调出工程管理器对话框,如图1-11所示。图1-11 工程管理器对话框对话框中显示当前所有打开的工程的信息状态和文件内容,如果这个工程属于一个工程组,那么Project Manager将显示整个工程组的所有工程信息。利用Project Manager对话框,可以很容易地实现工程的可视化管理,了解工程文件是怎样联系在一起的;也可以选择所要显示的文件,方法是单击鼠标右键,弹出快捷菜单,菜单列出了各种各样的工程管理任务,如打开、添加或去掉某个文件,以及编译整个工程;同样,利用Project Manager也可以把某一工程添加到相关的工程组中。利用这种方法可以同时编译多个可执行文件。一般来说,利用Project Manager主要进行与工程相关的任务,比如添加或删除文件,而不进行工程文件的编辑工作,因为Delphi能够自动跟踪和更新工程管理操作所影响的 文件。保存现有的桌面设置,就能够在打开工程文件时自动打开Project Manager窗口,右击鼠标并选择Dockable选项就可以使Project Manager窗口嵌入到其他可嵌入的窗口,或放置在这些窗口的旁边。从图1-11中可以看出,Project Manager对话框的主要组件主要有:Project Manager文件浏览窗口、Project选择器、Project Manager工具条、Project Manager状态条、Project Manager快捷菜单。进行工程管理的重要任务是设置Project Options。选择ProjectOptions选项,就会弹出Project Options对话框,如图1-12所示。图1-12 Project Options对话框利用Project Options对话框中的选项,可以定制工程的窗体、应用程序、编译器、链接器等的选项以及管理工程目录,也可以改变当前工程的设置,或新工程的默认设置。如果当前没有打开一个工程,则只能改变默认设置属性。Project Options对话框的选项含义如表1-1所示。表1-1 Project Options对话框的选项含义页 名 称简 述Forms控制自动创建窗体Application定制应用程序的标题、帮助文件名称以及图标名称Compiler定制编译器开关以决定代码的编译方式Linker管理如何将工程文件链接在一起Directories/Conditionals定制程序中所有需要编译的文件的路径VersionInfo定制产品认证信息的类型Packages定制设计期间和运行期间的包,以安装程序单击各标签就可以进行标签之间的切换。对话框左下角的Default复选框,用来保存默认设置。选中后,每个新工程就会使用当前的设置。1.5.3 使用窗体样板和对话框向导在Delphi中,一个重要的设计思想是软件可重复使用,所以系统已经载入了一些用户可应用的窗体样板。使用窗体样板可以简单生成各种对话框。1使用窗体样板创建窗体创建一个新工程时,Delphi已经创建了一个新的空窗体。如果需要使用一个窗体样板,向工程中增加一个窗体。选择FileNewother选项,Delphi即会显示New Items对话框,如图1-13所示。在Forms选项卡上,从样板库中选择期望的新窗体增加到工程中。图1-13 New Items对话框在New Items对话框可以选择窗体、工程模板、或是启动某个向导引导创建应用程序。New Items提供对Object Repository(对象仓库)的浏览,对象仓库中保留有窗体(Forms)、工程(Project)和向导(Wizards)。可以直接使用这些对象,复制到自己的工程中,或从现存的对象中继承获得。每个New Items对话框的标签都可以被包含到自己的工程中。2存储已建立的窗体样板首先创制一个窗体的样本,在窗体区域中单击鼠标的右键,可以调出窗体的加速菜单。选用Add To Repository.,将弹出对话框,如图1-14所示。在Forms列表框中,选择想要创建为样板的窗体。在Title文本框中输入想要在样本库内图标下出现的文本。在Description文本框,输入关于样板的详细说明。这样在浏览样本库时,在状态行上会显示这段文字以进行提示。可以选择一个图标作为新窗体样板的图标,单击Browse按钮,选择一个现有图标来代表新的窗体样板。否则将使用按钮左边的默认窗体图标。单击OK按钮,Delphi会提示是否确认将窗体存储为样板。图1-14 存储窗体样板对话框再次打开New Items对话框,会发现该窗体已经被保存成一个窗体样板。3. 使用对话框向导对话框样板呈现了友好界面的被保存对话框,而对话框向导却能根据用户提供的信息,智能地创建复杂的对话框。选择FileNew.,在New Items的Dialog页选用Dialogs Wizard,Delphi将提示回答各种问题,以便于建立复杂的对话框。1.5.4 使用工程样板和应用向导Delphi的工程样板提供预先设计的工程来作为应用程序开发的起点。而应用向导则允许用户按照一定的模式来创建一个应用程序。1使用工程样板如果通过一个工程样板来开始一个工程时,除了空白工程样板外,都会被要求指定一个惟一的子目录即工程目录Project Directory,用来存储新的工程。如果指定一个不存在的目录,Delphi会自动生成它。可以通过加入新的窗体和程序库单元来修改它,或不加修改地直接利用,而只是加入事件处理过程。无论如何修改,所作的修改只影响到打开的工程,原先的工程样板不会受到影响,可再次被利用。选择FileNew选项,在New Items对话框中选用Projects页,可以选择将MDI、SDI、Windows 95 Logo等应用程序作为默认的工程类型,单击所需工程的图标,使之高亮度显示,然后单击OK按钮,如图1-15所示。在接下来的Select Dictionary对话框中指定一个用来包含新的工程文件的目录,则一个工程样板的副本在指定的目录中打开。图1-15 New Items对话框的Dialgos Projects选项卡2使用应用向导Application Wizard

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论