




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
书名:Delphi 5 应用程序设计实例编著者:王小华页数:256页开数:16开字数:419.2千字出版日期:2000年3月第一次印刷出版社:电子工业出版社书号:ISBN 7-5053-5799-9定价:28.00元内容提要 本书从应用的角度出发,以一个完整的应用系统为例,讲述了利用Delphi编写应用程序的方法。从分析应用系统开始,循序渐进,由浅入深,充分利用了Delphi编程的优秀功能,广泛涉及了编写应用程序的技巧,并毫无保留地公开了应用系统的源程序。本书适用于Delphi程序设计人员。“软件开发者丛书Delphi篇”序 Delphi是Inprise公司的一种优秀的可视化软件开发工具,它短小精悍,但功能却可以与庞大的 VisualC+媲美;它易学易用,如同VB。因而,被称作是“第四代编程语言”。 从1995年至今, Delphi已经发展到5.O版本。 Delphi 5.0采用面向对象的程序设置、组件化的编程方式、快速Pascal编译器、OLE自动化、ActiveX编程、数据库及Internet/Intranet编程支持,从而使得 Delphi 5.0开发功能更加强大,同时更加易于学习和使用。该版本的主要特征之一就是支持Web,它能有效地帮助开发者个人或其开发团队快速建立Windows应用程序,并将其扩展到Internet中:快速简化Windows与浏览器客户、Web服务器、中间件以及后台数据库系统的集成;支持HTML4、MXL及建立Internet数据分配与交换应用程序的工业标准。此外, Delphi 5.0还加入了一些人性化的东西,比如颜色的设置、对象属性的控制、更多的集成组件、多语言支持工具(包括中文)等。的确,Delphi 5.0更加不同凡响。 既然Delphi有如此强大的功能,选择它作为软件开发工具应该是理所当然。而无论你是初学者还是有经验的用户,“软件开发者丛书Delphi篇”都是你进入与邀游Delphi世界的最佳选择。 “软件开发者丛书Delphi篇”拥有的如下背景与特点,会使你毫不犹豫地选择它作为学习和使用Delphi的导航器。 最优的作者群体 本丛书的作者皆来自从事Delphi教学和开发第一线的教师和软件开发人员,他们是Delphi教学和开发领域的杰出代表,因为我们相信只有最优秀的作者才有可能写出最优秀的书。 严格的审者群体 为了保证丛书编写质量,计算机事业部专门组织了由Delphi领域的开发专家组成的阵容强大的审定队伍,对丛书进行了严格的审定。 广泛的读者定位 为了满足各种层次的读者学习和使用Delphi的需要,本丛书同时考虑了针对初、中、高三种读者群体的定位。如果您是初学者或对Delphi了解不多的读者,那么您应该选择Delphi 5基础与提高,它是为您专门设计的;如果您对 Delphi有一定的了解,而只想学习和了解它的各种特殊或专门功能,那么您应该选择Delphi 5功能解析;如果您要直接进入Delphi编程领域,Delphi 5应用程序设计实例与Delphi 5程序设计与控件参考可以使您快速梦想成真;如果您是有Delphi经验的用户,Delphi 5应用系统开发高级指南可以使您锦上添花。 试试看,相信本篇定会助您一臂之力。由于时间和水平所限,不足和错误之处,敬请读者批评指正。 计算机事业部 2000年2月22日前 言 我们学习一种语言,是为了要用好这种语言,让它为应用服务。如何系统地运用Delphi 5编写应用程序,是本书的主要内容。 学习Delphi 5,仅仅靠简单地认识几个控件、制作几个漂亮的界面是不够的。编程需要方法、需要技巧,特别是大、中型应用系统设计的经验,更是程序设计人员最宝贵的东西。 本书系统地、分步骤地、由浅入深地讲述应用系统的设计方法。从最基本的操作开始,一步一步地引导读者,直到最后建立一个完整的应用程序,环环相扣,层次清楚,步骤严密。 本书分三个部分。第一部分(第1章至第7章)为建立应用系统的模板,它是一切应用程序设计的基础,是挂接其他应用模块的框架,这个框架包含了大多数应用系统所关心的封面、密码设置、权限设置、数据备份、帮助等功能。 第二部分(第8章至第13章)为实例部分,以一个工资管理系统为例,讲述了Delphi开发数据库系统的方法,充分利用了Delphi的数据库控件功能,讲述了在应用系统中所涉及的许多要点与技巧。 第三部分(第14章)为源程序部分,毫无保留地、完整地将源程序呈现在读者面前。 本书严格按照开发商业软件的步骤编写,流程规范,易学易懂,可以作为程序爱好者的软件技术参考文档。 对于Delphi初学者,可以帮助你很快入门。对于已经有很好基础的程序开发者,也会从中得到许多有益的启发。 王小华2000年1月1日目 录第1章 开始建立应用程序1 1.1 建立MDI主窗口1 1.2 添加控件 7 1.3 编译、连接、运行 9第2章 应用程序的封面制作 11 2.1 封面制作11 2.2 代码编写14第3章 为应用程序设置密码 15 3.1 密码输入窗口15 3.2 密码修改窗口22 3.3 用户信息窗口27第4章 建立应用程序的帮助窗口 32 4.1 建立帮助表33 4.2 系统帮助信息窗口35 4.3 跟随式帮助窗口40 4.4 索引窗口46第5章 为应用程序设置权限 51 5.2 窗口制作51 5.2 事件分析与处理55第6章 数据备份与恢复 67 6.1 数据备份与恢复窗口制作67 6.2 目录选择窗口制作70 6.3 事件分析与处理73第7章 设计应用程序图标 89第8章 工资款项定义窗口 91 8.1 窗口制作 93 8.2 事件分析与处理 107第9章 期间定义窗口133 9.1 窗口制作 133 9.2 事件分析与处理 137第10章 固定数据录入窗口 141 10.1 窗口制作 141 10.2 事件分析与处理145第11章 变动数据录入窗口 149 11.1 窗口制作149 11.2 事件分析与处理153第12章 工资表窗口 157 12.1 窗口制作157 12.2 事件分析与处理16O第13章 报表 179 13.1 报表制作179 13.2 事件分析与处理185第14章 应用系统源程序 187 14.1 主程序(MdiApp.dpr)187 14.2 主窗口(Main.pas)188 14.2 密码输入窗口(passdlg.pas) 201 14.4 密码修改窗口(passdlgl.pas)2O2 14.5 封面(WndFlash.pas)203 14.6 随机帮助窗口(WndHelp.pas) 204 14.7 帮助主窗口(Wndforhelp.pas)205 14.8 帮助索引窗口(WndHelpldx.pas)2O6 14.9 权限设置窗口(WndPowe.rpas)207 14.10 使用单位录入窗口(WndUnit.pas)212 14.11 数据备份与恢复窗口(WndBackup.pas)213 14.12 目录选择窗口(WndDir.pas) 219 14.13 工资款项定义窗口(Use_def.pas)221 14.14 期间定义窗口(Use_defl.pas) 237 14.15 固定数据录入窗口(Use_def2.pas) 239 14.16 变动数据录入窗口(Use_def3.pas) 241 14.17 工资表窗口(Use_def4.pas) 243 14.18 报表(Rep_salary.pas) 255第1章开始建立应用程序 当我们启动Delphi后,面对众多的窗口、丰富的控制按钮不知如何是好。我们是不是先要熟悉各个窗口?是不是将每一个控制按钮的功能都了解清楚之后再考虑编写程序?目前的大多数参考书都是这么指导读者的,其实这是一个误区。许多刚开始接触编写程序的初学者都是按照这种思维进行的,以至于其结果是当我们翻阅了大量的参考资料之后,回过头来一想,还是不会写程序。 编写程序需要技巧,需要经验,但也有捷径。计算机发展这么快,各种语言发展更快,面对日新月异的编程语言或其更新版本,我们是不是每次都要重新开始学习,以至于掌握其全部之后再编写程序呢?如果是,那我们也许永远都不会写程序。 我们干任何事件都离不开一种方法,编写程序也一样。本书的目的就是教你一种方法,它直接以编写应用程序为基础,告诉你应用程序该如何编写,从何处开始,应该掌握哪些问题,哪些功能是最常用的等。 在本书中,以一个完整的通用工资管理系统为例,讲述应用程序的编写过程。1.1建立MDI主窗口 在设计应用程序时,第一步是选择好主窗口的形式与内容,在本应用程序中,以MDI形式的父窗口作为主窗口,其他各功能窗口作为MDI子窗口。下面讲述MDI父窗口的设计步骤:第一步 窗口制作 选择系统菜单File中的New菜单项,出现如图1-1所示的对话框。选择Projects页,出现如图1-2所示的对话框。 选择MDI Application,出现如图l-3所示的对话框,在Directory Name:编辑框内输入所建应用程序的目录(示例目录D:Myapp),按“OK”按钮,自动生成如图1-4所示的MDI主Form,并在源代码编辑窗口自动生成与该窗口相对应的源程序,如图1-5所示。在屏幕左边的Object Inspector窗口中显示该窗口的属性与事件,如图1-6所示。 由此,应用程序的基本框架已经构成,但这只是万里长征走完了第一步。第二步 修改属性 属性是规定窗口特征的一些值的组合,通过修改这些值,可以改变窗口的形状、大小、显示位置、标题条名称、背景等。窗口的属性有很多,是不是我们对每一个都进行更改呢?大可不必,因为在自动生成窗口时,系统已缺省地为每一个属性规定了一个值,我们只须对其中所关心的一小部分进行修改就可以了,大部分都不用考虑,你甚至不用去搞清楚它的意思,也没有必要将所有属性的意思都搞清楚。 图1-1 New Items对话框一 图1-2NewItems对话框二 图1-3 选择目录对话框 图1-4 自动生成的MDI主窗口形式 在这里,我们所关心属性有: Caption:主窗口标题条名称。 Window State:运行该窗口时,窗口所呈现的状态。 将其修改如下:Caption:星星软件WindowState:wsMaximized(即运行该程序时,窗口呈最大化状态)第三步 制作菜单在生成该窗口的同时,系统亦自动加入了一菜单控件,并生成了一些常用的菜单项,虽然是常用的,但对于应用程序来说,并不一定都用得上,因此,必须对其进行修改。 图l-5 源代码窗口 图1-6 Object Inspector窗口 用鼠标指向菜单控件,双击该控件,出现如图1-7所示的菜单编辑窗口,用鼠标点击要修改的菜单项,如点击File,我们可以看到,在左边Object Inspector窗口列出了关于File的属性,在这个Object Inspector窗口(如图1-8所示),我们可以对各属性进行修改。修改菜单项属性时,我们最关心的是菜单项标题、快捷键、是否选择,对于其他属性,如名称等,暂且不用管它。 图1-7菜单编辑窗口 图1-8 菜单项属性修改窗口根据应用系统的需求,我们规定了菜单的内容及形式,如图l-9所示。图1-9菜单内容 对菜单项的属性修改如下:1.文件组文件Caption:文件(F)Hint:与文件有关的操作Name:Filel 新建: Name:FileSaveAsltem Caption:新建(N) 打印: Hint:产生一个新文件 Caption:打印(P) Name:FileNewItem Hint:打印文件 打开: Name:Item_Print Caption:打开(O) 打印设置: Hint:打开一个已存在的文件 Caption:打印设置(P) Name:FileOpenltem Hint:设置打印机 关闭: Name:Item_PrintSetup Caption:关闭(C) (分隔符) Hint:关闭当前窗口 Caption:- Name:Item Close 备份: 关闭所有: Caption:备份(B) Caption:关闭所有(L) Hint:数据备份 Hint:关闭所有己打开的子窗口 Name:Item_Backup Name:Item_CloseAll 恢复: 保存: Caption:恢复(R) Caption:保存(S) Hint:数据备份 Enabled: False Name: Item_Restore Hint:保存当前文件 (分隔符): Name:FileSaveItem Caption:- 另存为: 退出: CaPtion:另存为(A) CaPtion:退出(X) Enabled:False Hint:退出该应用程序 Hint:当前文件另存为 Name:FileExitItem2.工资组工资Caption:工资(X)Name:SI 打开工资表: Caption:录入固定数据(S) Caption:打开工资表(O) Hint:录入固定数据 Hint:打开工作表达式 Name:S1 Name:O1 录入变动数据: 新建工资表: Caption:录入变动数据(M) Caption:新建工资表(N) Hint:录入变动数据Hint:新建工资表 Name:MI Name:Nl 生成工资表: (分隔符): Caption:生成工资表(G) Caption:- Hint:生成工资表 录人固定数据: Name:G13.编辑组编辑Caption:编辑(E)Name: Editl 剪切: Hint:复制至剪贴板 Caption:剪切(T) Name: Copyltem Enabled:False 粘帖: Hint:剪切至剪贴板 Caption:粘粘(P) Name: Cutltem Enabled: False 复制: Hint:从剪贴板复制出 Caption:复制(C) Name: PasteCutltem Enabled: False4.选项组选项Caption:选项(O) 用户及权限设置: Hint:修改用户密码 Caption:用户及权限设置(U) Name:Item_ModPass Hint:设置用户名及其权限 使用单位: Name:Item_UseSet Caption:使用单位 修改密码: Hint:输入使用单位信息 Caption:修改密码(&P) Name:N25.窗口组窗口Caption:窗口(W)Hint:与窗口相关的操作Name: Windowl 层叠: Hint:所有子窗口最小化 Caption:层叠(C) Name:WindowMinimizeItem Hint:按层叠方式排列子窗口 (分隔符) Name: WindowCascadeltem Caption:- 平铺: 工具条: Caption:平铺(T) Caption:工具条(B) Hint:按平铺方式排列子窗口 Checked:True Name:WindowTileItem Hint:显示与隐藏工具条 排列目标: Name:Item_ToolBar Caption:排列图标(A) 状态行: Hint:排列子窗口图标 Caption:状态行(S) Name:WindowArrangeItem Checked:True 所有窗口最小化 Hint:显示与隐藏状态行 Caption:所有窗口最小化(M) Name:Item_StatusBar6.帮助组帮助 Caption:帮助(H) Name:Helpl 帮助: 关于: Caption:帮助(H) Caption:关于(A) Hint:系统帮助信息 Hint:关于本系统 Name:Item_Help Name:HelpAboutItem 菜单编辑完后,菜单编辑窗口即时显示出所编辑的效果图,如图l-10所示,该效果图很直观地反映出应用程序运行的界面。所以,我们说Delphi可视化的优点,不能不赞赏它所编即所得的一面。图1-10菜单 经过以上几个步骤,主窗口制作可以告一段落,就像修房子一样,这只能算是打了一个地基,还需要不断地填土、砌砖、盖瓦。打好这个地基,我们就有了一个好的开始。Delphi在帮助我们迅速地建好地基这一点上,确是起到了不少辅助作用,但是,最后要完成应用程序的实际功能,还需要自己通过编写程序来解决,虽然Delphi提供了丰富的控件,但它不可能穷尽我们要解决的所有问题,应用系统千变万化,靠几个控件的堆积是不能满足要求的。所以,我们不能完全依赖于Delphi的控件。但是,正是因为Delphi有了丰富的控件,它才有了自己的优越性,我们要用好这些控件。怎样用好?这就涉及到一个灵活运用的问题,如何才能灵活运用?实践出真知,多实践!多学习别人的东西!多研究别人的程序!1.2添加控件 系统在自动生成MDI主窗口的同时,已经在其窗体表面附加了一些常用控件,这些不一定是我们用得上的,我们必须删除其中的多余部分。另外,也必须加上一部分我们需要的控件。 在本应用系统中,需要在主窗口的表面显示系统的日期,并能对日期进行修改。面对这个需求,首先我们想到的是:是否有这样一个控件?要是有,直接调用就可以了;要是没有,还须自己设计一个。 由此,我们悟出一个了解控件的方法:首先,提出一个需要,再根据需求去找一个相应的控件。 如何知道合适的控件呢?通过控件栏或Component窗口,找到一控件名称,再在帮助索引中输入该名称,查看其帮助信息。帮助信息全是用英文写的,需要有一定的英文基础。通过选择控件栏,我们没有发现相应的控件。不过不要着急,控件栏里列出的只是最常用的控件而已。让我们再看看ComponentList窗口,选择View菜单的ComponentList项,出现Component窗口,如图111所示。移动滚动条,我们找到了DateTimePicker,通过查看帮助信息,我们发现该控件正好满足我们的要求,于是,我们决定利用这个控件。图111 Component窗口 在DelPhi的控件中,有可见的与不可见的两种。只涉及操作、在运行时不显示在窗口上的控件称为不可见的,这些控件,不用考虑其摆放位置,如菜单控件、各种对话框控件等。其他则为可见控件,如按钮、编辑框、列表框等,这些控件加入窗体时,需要考虑其摆放位置。 DateTimePicker控件是一可见控件,我们将它放在窗口上部的工具条上。首先,用鼠标点击工具条,使它处于选择状态,然后选择View菜单,选择Component List项,出现Component窗口,移动滚动按钮,选择TDateTimePicker,用鼠标点击AddtoForm按钮,DateTimePicker控件即被加入窗体中,如图112所示。DateTimePicker显示的日期是固定的,如果你不修改它,它永远也不会改变,为了让其显示的日期与当前日期同步,必须自己写程序代码,该代码加入主窗口的构造过程中。图1-12主窗口加入控件DateTimePicker 选择Object Inspector窗口的Events页,如图l-13所示,双击OnCreate事件,系统产生该事件的响应过程FormCreate,在源代码编辑窗口中写入代码:procedureTMainForm.FormCreate(Sender:TObject);var SystemTime:TSysemTime; myDate:TDateTime;begin /置系统时间 GetLocalTime(SystemTime); mpDate:=SystemTimeToDateTime(SystemTime); DateTimePickerl.Date:=myDate;end; 至此,MDI主窗口的基本设计已经完成,但是,各菜单项的功能还没有加入,在下面的章节中,我们主要讲述各菜单项的具体功能及其设计方法,当这些功能都设计完毕后,加入至菜单项中。在具体设计各功能模块时,一般采取边设计、边调试的方法。即每设计一个功能,加入相应的菜单项进行调试,成功后,设计下一功能模块。 图1-3 主窗口的事件 图1-14 项目管理窗口 1.3编译、连接、运行 我们利用Delphi编程的目的,就是要最终生成Windows一下可执行的EXE文件或动态连接库DLL。在DelPhi的集成开发环境中,你可以很方便地对程序进行编译、连接、运行。 通过生成MDI应用程序,系统已自动生成管理这些程序的项目,选择View菜单的ProjectManager项,你可以实现对项目的管理,如图l14所示。 在项目管理窗口,选择New控制按钮出现一新项目窗口,根据窗口的提示,你可以建立窗体、建立报表、建立DLL等。 要编译、运行项目,可通过菜单操作。选择菜单Project的Compile编译项目。选择菜单Project的Build项编译并连接项目,生成相对应的执行文件。选择菜单Run的Run项将项目编译、连接并运行所生成的执行文件。第2章 应用程序的封面制作 封面是一个应用程序运行时第一次向用户展示的窗口。大部分应用程序都有自己的封面,如我们启动Word、Delphi、C Builder等,都有一个漂亮的封面。这些封面直观地显示了版本、用户信息、设计单位等。封面对于每个应用程序虽然不是必须的,但至少体了软件产品的一种形象,也是有意义的。2.1 封面制作 所谓软件封面,它也是一个窗口,一个直观反映软件信息的窗口,由于它在软件启动时最先显示出来,我们形象地称之谓封面。就像书的封面一样,因为它是书的第一页,所以称封面。 制作一个封面即制作一个窗口。第一步 新建窗口选择菜单File的New项,出现NewItems对话框,选择Form,确定,即生成一新Form,我们将它命名为FrmFlash,如图2-l成示。图2-1 新窗口FrmFlash 选择ObjectInspector窗口,修改其属性如下:BorderStyle:bsNone /无边框Caption: /无标题条名称Height:210 /高度Name:FrmFlash /窗口名称Position:poScreenCenter /显示在屏幕上的位置Visible:False /窗口创建时不立即显示Width:358 /窗口宽度第二步 加人Panel控件 Panel控件是一个面板控件,它可以用来隔离其他控件,也可以用来修饰窗口。在这里,利用该控件修饰封面窗口。选择控件栏的Standard页,如图2-2所示,在窗口中加入一Panel控件Panell:Align:alClient /面板大小:充满整个窗口BevelOuter:bvLowered /下陷BevelWidth:2Caption: /无标题Name:Panell /控件名称图2-2 Standard控件栏第三步 加入Image控件 Image控件为一图像控件,为了封面制作得美观,有必要加入该控件以修饰。选择控件栏Additional页
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海车辆租赁管理办法
- 考核管理办法mba
- 绵阳市电梯管理办法
- qq解冻资金管理办法
- 郑州农村机井管理办法
- 管理规范与管理办法
- 西藏酒店会员管理办法
- 衔接补助资金管理办法
- 贺兰红商标管理办法
- 东风工会采购管理办法
- 招录事业编人员政审表
- SG-A088接地装置安装工程工检验批质量验收记录
- 《芯片原理与技术》课件微流控芯片
- T∕ACEF 027-2021 农药污染地块土壤异味物质识别技术指南
- 建筑结构:高层建筑结构选型
- 混凝土外观质量缺陷及治理措施PPT课件
- 建设项目对海洋生物资源影响评价技术规程
- 整车轴荷计算方法
- 燃气管道焊接工艺卡
- 大陆法系的形成与发展
- 地下管线及其他地上地下设施保护加固措施(二)
评论
0/150
提交评论