资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Delphi程序设计,前言,Delphi是一种优秀的基于Windows的应用软件开发工具。它具有可视化的开发环境、简洁明快的编程语言、强大的数据库功能、可扩展的组件库。,本书突出基础知识的讲解,对知识点进行了细致深入的归纳和剖析,是Delphi的入门级教程。无论读者是否具有编程基础与编程思想,本书都是非常合适的教材与参考书。作者长期从事Delphi程序设计的教学工作,本教材就是根据多年的教学经验编写而成的,教师可以根据学生的实际情况对某些章节进行加强,或者对某些章节进行适当的删减,建议教学时数为72学时。,下一页,返回,前言,本书具有如下特点:,1.结构合理,本书将Delphi基础、Object Pascal语言、常用组件的应用等内容介绍得比较详细,很多内容都独立编写成一章,这样可以充分考虑到入门者的实际情况。本书例题经典,讲述清楚,界面美观,力图由浅入深。本书中的每节内容都分为“项目说明”、“项目分析”、“项目实现”、,“学习支持”、“扩展训练”几部分来讲解。,“项目说明”:交代要完成的一个项目;,“项目分析”:分析一个项目需要的组件和事件过程;,“项目实现”:展现完整的代码及注释;,“学习支持”:给出每一节的新知识点讲解;,“扩展训练”:根据内容需要补充知识点。,上一页,下一页,返回,前言,2.项目教学法,本书采用了非常实用同时也是非常适合高职院校学生学习的项目教学法编写,每一节内容都是一个项目,由具体的项目提高本书的实用性,同时也可以使初学者通过每一个项目的实现建立起学习的自信心和学习的兴趣。为了提高学生的动手能力、实践能力和职业素质,特意聘请有实践经验的高级工程师参与教材的编写,采用了一线工程技术人员与在校教师联合编写的模式,使课堂教学与实际操作紧密结合。,上一页,下一页,返回,前言,3.配合教学资源,本书中的每一道例题作者都保留了原始文件,所有例题源代码都可以免费在北京理工大学出版社网站()上下载。,本教材由孙茜主编并统稿,张润华、程玉宽、李彬、李金勇、王春媚、中外运长航集团科技部赵晨参编。由于时间仓促,加之水平有限,不妥与疏漏之处在所难免,恳请读者批评指正。,本书可以作为高职高专教材和参考书,也可以作为社会培训班教材。,上一页,返回,目录,第一章Delphi预备知识,项目1创建第一个Delphi应用程序,第二章Delphi的语法基础,项目1计算圆面积,项目2求整数各位数字,项目3简单的函数计算器,项目4改变文本格式,下一页,目录,项目5系统登录程序(if语句),项目6计算折扣(case语句),项目7求2+3+50的和(while语句),项目8求2+3+50的和(for语句),项目9 break、continue语句,项目10一维数组,项目11二维数组与记录类型的结合使用,上一页,下一页,返回,目录,第三章窗体和常用组件,项目1显示当前日期、时间,项目2实数计算器,项目3编辑、显示个人信息,项目4设置字体风格,项目5星座,项目6单词积累器,上一页,下一页,返回,目录,项目7模仿迅雷窗口,项目8日历,第四章菜单、工具栏、状态栏,项目1文本编辑器,项目2文本编辑器,项目3个性文本编辑器,上一页,下一页,返回,目录,第五章文件管理,项目1获取驱动器容量,项目2文件查看器,项目3图片预览器,上一页,下一页,返回,目录,第六章过程与函数,项目1比较大小,项目2判断三角形类型,项目3判断闰年项目,项目4简单计算器,上一页,下一页,返回,目录,第七章图形图像的处理,项目1 Canvas绘制基本图形,项目2画笔的应用,项目3画刷的应用,项目4放大镜,项目5设置桌面墙纸,上一页,下一页,返回,目录,第八章多媒体,项目1播放视频文件,项目2可控制进度的视频播放器,项目3音频播放器,第九章数据库,项目1基于BDE的数据库应用程序,项目2基于ADO的数据库应用程序,上一页,返回,第一章Delphi预备知识,项目1创建第一个Delphi应用程序,项目1创建第一个Delphi应用程序,项目说明,编写一个显示“第一个Delphi应用程序”的程序。程序运行时界面如,图1-1,,,图1-2,所示。,项目分析,1.启动Delphi 7,单击Delphi 7的桌面图标或单击Windows系统的“开始”菜单,选择“程序”“Borland Delphi7”“Delphi 7”命令,就可以启动Delphi应用程序。,返回,下一页,项目1创建第一个Delphi应用程序,2.窗体中需要的组件,本程序需要在窗体上添加3个组件:一个Label组件,用来显示“第一个Delphi应用程序”,两个Button按钮,分别用来显示“显示”和“关闭”。单击“显示”按钮,将在窗体上显示“第一个Delphi应用程序”,单击“关闭”按钮,将关闭应用程序。,(1)为窗体添加组件。,Label组件和Button组件都在组建模板的“Standard”选项卡上,通过单击选中组件,在窗体上单击或拖动即可添加相应的组件。,(2)设置对象属性如,表1-1,所示,窗体设计效果如,图1-5,所示。,3.项目中的事件,(1)Button1的OnClick事件,用于显示Label1组件中的文字。,(2)Button2的OnClick事件,用于关闭窗体。,返回,上一页,下一页,项目1创建第一个Delphi应用程序,项目实现,学习支持,1.Delphi的标题栏与菜单栏(见,图1-6,),标题栏在主界面的最上部,显示当前工作的项目(Project1)的名称。项目就是一个独立应用程序中所包含的文件的总称。,菜单栏在标题栏下面,包括“File”、“Edit”、“Search”等11个下拉菜单,包含Delphi所有的命令和功能。单击菜单栏中的任一菜单名,即可打开该菜单名对应的下拉菜单。,表1-2,简单介绍了菜单栏的各种菜单的基本功能。,返回,上一页,下一页,项目1创建第一个Delphi应用程序,2.Delphi的工具栏与组件栏,工具栏的按钮与菜单栏中的一些常用菜单命令是一一对应的,用图标显示命令的功能,快速执行命令。,工具栏中的按钮可以由用户按自己的需要自由添加或删除。具体方法:可以通过菜单栏中的“View”“Toolbars”“Customize”命令或者直接在菜单栏处右击就会弹出菜单“Customize“对话框,选中其中的Toolbars属性页,这时就可以在工具栏上的添加、删除和排列加速按钮。,返回,上一页,下一页,项目1创建第一个Delphi应用程序,3.对象浏览器与编辑器,对象浏览器(Object Inspector)又称对象观察器或属性窗口,是设置窗体和组件属性的工具,如,图1-9,所示。要设置Object Inspector为一直可见,可将鼠标移到Object Inspector上,右击鼠标启动Object Inspector的弹出式菜单,将其设置为Stay On Top。这对初学者来说是一个很重要的设置方式。,对象树形列表(Object TreeView)用来显示用户使用的所有可视化组件,对于管理程序、明确各组件之间的关系很有帮助,如,图1-10,所示。用对象树形列表可以很容易地在窗体的各个组件之间切换,也可以快速地回到窗体本身。当窗体中含有较多的对象时,这是切换对象,尤其是回到窗体的最快捷途径。,返回,上一页,下一页,项目1创建第一个Delphi应用程序,4.窗体与代码编辑窗口,窗体就是将来在应用程序中显示的界面,在窗体设计窗口中可以添加组件栏中的组件。窗体设计窗口的标题栏中显示的是当前正在设计的窗体的名称,默认名为:Form1(见,图1-11,)。,代码编辑窗口建立事件的处理并编写相关代码。当新建一个窗体后,就自动生成该窗体的单元文件代码,如,图1-12,。此时初学者可能找不到代码编辑器和代码浏览器,因为它们被窗体遮盖住了。,5.创建、保存和编译工程,返回,上一页,表1-1设置对象属性,返回,表1-2菜单栏的各种菜单功能简介,返回,图1-1程序开始运行时界面,返回,图1-2单击“显示”按钮后的画面,返回,图1-5设计完成后的窗体,返回,图1-6 Dephi的标题栏与菜单栏,返回,图1-9对象浏览器,返回,图1-10对象树形列表,返回,图1-11空白窗体,返回,图1-12代码编辑器,返回,第三章窗体和常用组件,项目1显示当前日期、时间,项目2实数计算器,项目3编辑、显示个人信息,项目4设置字体风格,项目5星座,项目6单词积累器,项目7模仿迅雷窗口,项目8日历,下一页,项目1显示当前日期、时间,项目说明,本应用程序是一个显示系统当前日期、时间的练习,界面由一个Label组件和三个Button组件组成,运行效果如,图3-1,所示。若用户单击“当前时间”按钮,则在Label组件显示出当前时间;若单击“当前日期”按钮,则在Label组件显示出当前日期;单击“当前时间和日期”按钮,将在Label组件显示出当前日期和时间。,返回,下一页,项目1显示当前日期、时间,项目分析,1.窗体中的组件(见,图3-2,),(1)选择组件模板“Standard”选项卡,向窗体加入1个Label组件,用于显示时间日期。,(2)选择组件模板“Standard”选项卡,向窗体加入3个Button组件“当前时间”、“当前日期”、“当前时间和日期”。,(3)设置窗体中组件属性如,表3-1,所示。,2.项目中的事件,(1)“当前时间”按钮OnClick事件,用于显示当前系统时间。,(2)“当前日期”按钮OnClick事件,用于显示当前系统日期。,(3)“当前时间和日期”按钮OnClick事件,用于显示当前系统时间和日期。,返回,上一页,下一页,项目1显示当前日期、时间,项目实现,学习支持,1.Form组件,(1)创建Form组件:建立一个Form组件有多种方式,用户可以根据需要灵活地使用它们。,(2)修改窗体的标题:建立一个窗体时,窗体的标题默认值为Form1,Form2等,可以根据其作用或意义修改标题,这时只需重新设置窗体的Caption属性即可。,(3)修改窗体的变量名:建立一个窗体时,窗体的变量名Name默认为Form1,Forlm2等,用户可以根据其作用或意义修改变量名,这时只需重新设置窗体的Name属性即可。,返回,上一页,下一页,项目1显示当前日期、时间,(4)初学者有时可能在屏幕上找不到窗体,这时可以使用下列方式之一来进行查找:,执行“View”“Forms”菜单命令,在出现的“View Form”对话框中,选择所要的窗体名。,按“Shift+F12”键,在出现的“View Form”对话框中,选择所要的窗体名。,执行“View”“Project Manager”菜单命令,进入项目管理器,然后用鼠标左键双击窗体的图标。,(5)Form组件常用属性:在Form组件的属性选项卡上有许多属性,它们是按照字典顺序排列的。每个属性都有其默认值,在设计期可以重新设置这些属性值。下表列出了Form组件的常用属性(,表3-2,)。,返回,上一页,下一页,项目1显示当前日期、时间,(6)Form组件常用事件:大家知道,不同的对象所提供的事件过程不尽相同。下面将介绍有关Form组件常用的事件过程。在Form组件事件选项卡的事件框上双击,就会出现系统默认的事件过程名,一般没有必要不要修改其名称。,2.Button组件(命令按钮),(1)在各种应用程序中经常使用形式各异的按钮组件。Button组件用法比较简单,在应用程序运行期单击它将触发OnClick事件,程序要做的就是响应这个事件。因此Button组件称为标准命令按钮或命令按钮。,(2)若某个Button组件被Form的ActiveControl属性设置为默认激活的按钮,可以在程序运行期间按“Enter”实现按钮的单击。,(3)Button组件的常用属性如,表3-4,所示。,返回,上一页,下一页,项目1显示当前日期、时间,3.Label组件(标签组件),(1)Label组件是一个简单易用并且经常使用的组件。标签组件本身并不是窗口,只是用来标注其他组件。用途:,在窗体上对输入的文字给予提示信息。,对显示的文字给予说明。,将已知数据、中间结果及最后结果显示在窗体上。,用来显示其他组件的简要说明,即用来标注其他组件。,(2)Label组件常用属性如,表3-5,所示。,返回,上一页,下一页,项目1显示当前日期、时间,4.日期函数,Delphi系统定义了TDate日期类型、TTime时间类型和TDateTime日期时间类型。这些类型用Double实型值来表示日期时间。因为Double类型有足够的宽度,以便在一个变量里存储年、月、日、小时、分和秒,直至毫秒等信息。,返回,上一页,项目2实数计算器,项目说明,本项目利用17个Button组件和1个Edit组件,并使用了Button组件公共事件的方法完成了一个简易实数算术计算器的制作,这个计算器可以进行实数的加减乘除计算。运行效果如,图3-3,所示。,项目分析,1.窗体上需要加入的组件,向新窗体加入一个Edit组件,用于显示运算过程及结果;加入17个Button按钮,用于输入运算表达式及进行有关操作。这些按钮分为两大类:,(1)字符类:包括输入数字(09)字符的10个按钮(Button0Button9)和输入小数点的按钮(Button10),共计11个。,返回,下一页,项目2实数计算器,(2)运算类:包括Plus(“+”按钮),Minus(“-”按钮),Multiply(“*”按钮),Devide(“/”按钮),Equal(“=“按钮)和Clear(“C”按钮),共计6个。为简化程序结构,“+”“-”“*”“/”按钮使用公用事件,因此依次将它们的Tag属性设置为0,1,2,3。,(3)窗体中组件属性设置如,表3-6,所示。,(4)窗体设置效果如图,3-4,所示。,2.公共变量声明,在程序运行过程中,要进行输入、算术运算、显示结果“=“和清零“C”等操作,所以在窗体类的声明中添加了如下变量声明:,返回,上一页,下一页,项目2实数计算器,项目实现,学习支持,1.多个组件对齐和尺寸调整,(1)在窗体上添加多个相同的组件:按住“Shift”的同时,在组建模板上单击你想要添加的组件,这时就可以在窗体上通过单击鼠标左键得到多个相同的组件(如,图3-5,),想退出此状态就单击组建模板上的指针组件即可。,(2)一组组件的尺寸调整:“Edit”“Size”(如,图3-6,)。,(3)一组组件对齐:“View”“Alignment Palette”(如,图3-7,)。,返回,上一页,下一页,项目2实数计算器,2.Edit组件,Edit组件是为用户提供一个可以编辑修改、输入文字的单行编辑器,还可以用来显示数据,所以它是输入、修改和显示数据的工具。,Edit组件常用属性如,表3-7,所示。,3.公用事件,在这个项目中,应用程序使用了许多Button组件,原则上每个按钮都要建立相应OnClick事件过程。当它们的功能代码既简单又十分相似时,就可以用一个“公用”的事件过程来代替这些事件过程呢。这就是公用事件的含义。,返回,上一页,下一页,项目2实数计算器,4.异常处理,程序代码不可能绝对不出错,为了防止出错,往往通过额外的代码捕获可能的错误。但这种方法只能捕获可预见的错误,如果出现没有预见的错误,则程序正常的流程将被打乱。Delphi提供的异常处理机制就是:在源代码编译之后,在Windows下运行执行文件时,如果输入的数据有错,将能够在不中断程序运行的情况下进行纠错。,语法:,try,except,end;,返回,上一页,项目3编辑、显示个人信息,项目说明,利用GroupBox,CheckBox,Edit和Label等组件,编辑、显示个人信息选项。如,图3-8,所示,如果在复选框内选中某人的“姓名”、“性别”、“年龄”或“电话”等选项之一,在相应编辑框输入信息之后,单击“显示”按钮,则所有被选中选项的信息将显示在一个Label标签上。,返回,下一页,项目3编辑、显示个人信息,项目分析,1.窗体上置入的组件,(1)选择组件模板的“Standard”选项卡,在空白窗体中首先置入一个GroupBox组件作为容器。,(2)选择组件模板的“Standard”选项卡,将4个CheckBox复选组件放入这个GroupBox组件,这4个CheckBox组件分别表示“姓名”、“性别”、“年龄”和“电话”选项。,(3)选择组件模板的“Standard”选项卡,在窗体上放入4个Edit编辑框,用于编辑相应选项的内容。,(4)选择组件模板的“Standard”选项卡,放入2个Button按钮“显示信息”、“清除”,用于建立单击事件过程。,返回,上一页,下一页,项目3编辑、显示个人信息,(5)选择组件模板的“Standard”选项卡,放入1个Label标签,用于显示各Edit编辑框的内容。,(6)在“Win32”选项卡上选择一个UpDown加减组件,用于调整输入的年龄,在运行期就可以通过单击UpDown加减组件的两个箭头按钮来改变Edit组件显示的整数值。,(7)各组件主要属性设置如,表3-8,所示。,(8)窗体设置效果如,图3-9,所示。,返回,上一页,下一页,项目3编辑、显示个人信息,2.项目中的事件,(1)4个CheckBox使用公共事件CheckBox1Click,用来控制各个选项对应的Edit是否可见。,(2)“显示信息”按钮单击事件,用来显示Edit的内容。,(3)“清除”按钮单击事件,用来清除Label和Edit中的内容。,项目实现,返回,上一页,下一页,项目3编辑、显示个人信息,学习支持,1.GroupBox组件,(1)在Windows界面设计中,常常将一组相关的控件放在一个“容器”组件中,使它们表现出整体性。制作复选框与单选框就是将GroupBox组件作为容器使用,在其中分别置入一组CheckBox组件或一组RadioButton组件。,(2)要在窗体上建立一个GroupBox组件,只需在组件模板的“Standard”选项卡上选中GroupBox组件按钮,然后在窗体的适当位置单击鼠标左键,便完成一个GroupBox组件的建立。,(3)GroupBox组件具有控件的所有基本属性。它最主要的属性是有一个总标题,可通过Caption属性进行设置。,返回,上一页,下一页,项目3编辑、显示个人信息,(4)制作复选框与单选框的优点主要有:,将同一性质的选项按钮集中在一个GroupBox内,可以使程序操作更加方便。,多组选项按钮分别置于不同的GroupBox内,彼此互相独立,可以使窗体画面整齐而有条理。,当移动或者删除GroupBox时,在框内的各子控件也会随之被移动或者删除,免除多次调整位置的麻烦。,返回,上一页,下一页,项目3编辑、显示个人信息,(5)制作复选框。所谓复选框就是以GroupBox组件作为容器,在其中置入一组CheckBox组件。从复选框的上述定义来看,制作复选框是容易的。但是从操作上考虑,要对齐已经置入到GroupBox组件的一组CheckBox组件,往往是困难的。建议采用下列方法制作复选框:,先将一组CheckBox组件置入窗体,然后用指针组件把这组组件框起来,用“View”“Alignment Palette”菜单命令打开“Align”对话框,进行对齐操作,特别是水平等距分配或竖直等距分配。,再次用指针组件把这组组件框起来,并将它们移到窗体左上角,剪切到剪贴板。,最后将GroupBox组件置入窗体,再将剪贴板保存的组件粘贴到这个容器组件中。,返回,上一页,下一页,项目3编辑、显示个人信息,2.CheckBox组件(复选按钮),CheckBox组件可以直观地表示某个选项被选中还是没有被选中。每个CheckBox组件由一段文字和一个小方框组成。用鼠标单击CheckBox组件的小方框,无论是从未选中到选中还是从选中到未选中,都会触发一个OnClick事件。,CheckBox组件常用属性如,表3-9,所示。,返回,上一页,下一页,项目3编辑、显示个人信息,3.UpDown,一个UpDown加减组件,在组件模板的“Win32”选项卡上选中“UpDown”图标,然后在窗体上适当位置单击鼠标左键,便完成一个UpDown加减组件的建立,UpDown加减组件由一对箭头按钮组成。用户可以利用它的Associate属性来指明配合的Edit组件名,还可以利用它的Min和Max属性来指明它的变化区间。在运行期就可以通过单击UpDown加减组件的两个箭头按钮来改变Edit组件显示的整数值。这样,应用程序就可以通过Edit组件的Text属性来输入所需的整数值。,返回,上一页,项目4设置字体风格,项目说明,利用单选按钮RadioButton、复选按钮CheckBox和容器组件GroupBox来完成一个Edit编辑框中显示文字的大小、风格、颜色,效果如,图3-10,。在本项目中仍然使用了公共事件的方法。,项目分析,1.窗体中的组件,(1)选择组件模板的“Standard”选项卡,向窗体放置1个Edit用于显示文字格式。,(2)选择组件模板的“Standard”选项卡,向窗体放置3个GroupBox,分别用于放置颜色、字体风格、字号的选项。,返回,下一页,项目4设置字体风格,(3)选择组件模板的“Standard”选项卡,向窗体放置6个RadioButton,其中三个设置为颜色选项,另外三个设置为字号选项。,(4)选择组件模板的“Standard”选项卡,向窗体放置3个CheckBox,设置为字体风格选项。,(5)窗体中组件的主要属性设置如,表3-10,所示。,(6)窗体设计效果如,图3-11,所示。,2.项目中的事件,(1)RadioButton的两种公用事件:选择颜色的公共事件名RadioButtonClick、选择字号的公共事件名RadioButton4Click。,(2)CheckBox的公用事件:选择字体风格的公共事件名CheckBoxClick。,返回,上一页,下一页,项目4设置字体风格,项目实现,学习支持,RadioButton,单选按钮与复选按钮有相似之处,它们都能直观表示某个选项是否被选中。不同的地方是,单选框表示的选项是互斥的,并且通常成组地使用。如果一组选项中有一个选项被选定,则该组的其他选项将处于未选择状态。,单选框用RadioButton组件建立,每个单选按钮由一段文字和一个小圆圈组成。用鼠标单击小圆圈,只有当单选框被选中时,才会触发一个OnC1ick事件。RadioButton组件主要属性如表,3-11,所示。,返回,上一页,项目5星座,项目说明,这个项目实例使用一个RadioGroup组件把出生日期制作成一组单选按钮,选择某个出生日期范围后,应用程序会将日期范围所属星座显示出来(如,图3-12,)。,项目分析,1.窗体上的组件,(1)选择组件模板的“Standard”选项卡,向窗体添加一个RadioGroup组件,用于制作一个单选框来表示出生日期范围选项。,(2)选择组件模板的“Standard”选项卡,向窗体添加两个Label标签,用于显示星座名称和提示文字。,(3)窗体中组件的主要属性设置如,表3-12,所示。,返回,下一页,项目5星座,(4)窗体设计效果如,图3-14,所示。,2.项目事件,RadioGroup的OnClick事件,用于相应用户对选项的选择,结果显示在一个Label标签。,项目实现,返回,上一页,下一页,项目5星座,学习支持,RadioGroup,(1)除了可以用GroupBox组件来制作单选框外,还可以用RadioGroup组件快速地制作单选框。Delphi有一种专门制作单选框的单选分组框,这就是RadioGroup组件,其功能与在一个GroupBox组件中加入若干单选按钮基本相同。但是,使用RadioGroup制作单选框十分方便,Delphi无须用户加入选项按钮,只要编辑选项名就会自动帮助用户在单选分组框中建立按钮,并将它们排列好。,返回,上一页,下一页,项目5星座,(2)要在窗体上建立一个RadioGroup组件,只需打开组件模板的“Standard”选项卡,在其中选中RadioGroup组件按钮,然后在窗体的适当位置单击鼠标左键,即可完成一个RadioGroup组件的建立。,(3)RadioGroup的主要属性如,表3-13,所示。,(4)单选框的编辑。利用RadioGroup组件,可以通过编辑它的Items属性来制作单选框,Delphi就会为每个字符串建立一个单选按钮,该字符串就是单选按钮的选项的名字,并且自动将它排列在单选框之中。这些选项按钮还可以按照多列排列在单选框中,列数可通过Columns属性进行设置。更重要的是,在运行期可以动态地对RadioGroup的Items属性进行操作。,返回,上一页,项目6单词积累器,项目说明,本项目是一个在英语学习过程中用于单词积累的工具,这个工具完成了添加单词、删除单词、保存单词表的功能,并且可以查看单词的中英文显示。这个项目说明了ListBox和ComboBox两个组件的使用方法及主要属性、方法和事件等,这两种组件的使用方法比较近似,使用频率也较高。另外,本项目还说明了如何调用第二个窗体。运行效果如,图3-15,所示。,返回,下一页,项目6单词积累器,项目分析,当单击ListBox组件中的某个中文选项时,会在ComboBox组件中显示相应的英文单词;同样当在ComboBox组件中选择了某个英文单词时,ListBox组件中的相应中文也会显示为选中状态;单击“添加单词”按钮会弹出添加单词窗口,输入对应的中英文之后单击“确定”按钮可以添加单词;单击“删除单词”按钮会删除选中的单词和对应的中文,即ComboBox和ListBox中会删除对应的内容;单击“保存”按钮,会把删除或添加过的单词保存到对应的文件存储起来。,返回,上一页,下一页,项目6单词积累器,1.窗体Form1中置入的组件,(1)选择组件模板的“Standard”选项卡,在窗体中添加一个ListBox组件、一个ComboBox组件,用于显示单词的中英文。ListBox和ComboBox两个组件的内容可以通过其Items属性在编辑框中提前设置,也可以提前保存到一个文本文件中,并使用LoadFromFile方法打开该文本文件。在这个项目中我们不用Items属性逐个的添加项,而使用LoadFromFile方法载入文件:,返回,上一页,下一页,项目6单词积累器,(2)选择组件模板的“Standard”选项卡,在窗体中添加三个Label组件,用于标识“中文”、“英文”、“”。,(3)选择组件模板的“Standard”选项卡,在窗体中添加三个Button组件,分别是“添加”“删除”、“保存”。,(4)窗体中组件的主要属性如,表3-14,所示。,(5)窗体设计效果如,图3-16,所示。,2.表单Unit1中的事件,(1)Form1的OnCreate事件,可以在打开Form1时显示以前保存过的词汇。,返回,上一页,下一页,项目6单词积累器,(2)“添加”按钮的OnClick事件:通过调用第二个窗体来完成添加任务。在Unit1中要调用Unit2需要选择菜单“File”“Use Unit”,选中要调用的窗体,这时Unit1代码中会出现如下代码:,uses Unit2;,(3)“删除”按钮的OnClick事件:可以从en.txt和ch.txt文件中删除选中的项。在程序运行过程中,要删除一个项可以先选择该项,然后通过ListBox和ComboBox组件的DeleteSelected方法删除该项。,返回,上一页,下一页,项目6单词积累器,(4)“保存”按钮的OnClick事件:把改动过的单词和译文表载入到文件中。,(5)Listbox的OnClick事件:当选中Listbox中的某个中文时,Combobox出现对应的英文,这个功能是利用Listbox和Combobox中项的索引值一致实现的。Count属性表示项的总数;ItemIndex表示一个项的索引值,第一个项的值为0。代码如下:,返回,上一页,下一页,项目6单词积累器,(6)Combobox的OnChange事件:当选中Combobox中的某个英文时,Listbox出现对应的中文,这个功能采用for循环在combobox1.Items中逐个查找,直到Listbox和Combobox中项的索引值一致为止,代码如下:,返回,上一页,下一页,项目6单词积累器,3.窗体Form2中置入的组件,(1)选择组件模板的“Standard”选项卡,在窗体中添加两个Label组件,用于标识“中文”、“英文”。,(2)选择组件模板的“Standard”选项卡,在窗体中添加两个Edit组件,用于输入对应的中英文单词。,(3)选择组件模板的“Additional”选项卡,在窗体中添加两个BitBtn组件,作为“确定”输入内容的按钮和“关闭”窗口的按钮。,(4)窗体中组件的主要属性如,表3-15,所示。,(5)窗体设计效果如,图3-17,所示。,返回,上一页,下一页,项目6单词积累器,4.表单Unit2中的事件,(1)在Unit2中要调用Unit1的方法上面已经介绍过,这里就不重复说明了。,(2)“确定”按钮的OnClick事件:实现的功能是向中英文单词表中添加新词汇,Add方法可以实现添加新的项,代码如下:,form1.ListBox1.Items.Add(edit1.Text);,form1.ComboBox1.Items.Add(edit2.Text);,项目实现,返回,上一页,下一页,项目6单词积累器,学习支持,1.ListBox组件,(1)ListBox组件主要用于制作列表框,列表框中具有一连串的选项,可供用户从中选中所需的选项,如,表3-16,所示。,(2)常用属性的用法。,Items对象的CommaText属性:,ListBoxl.Items.CommaText:=选项1,选项2,选项3;,ItemIndex属性:,ListBoxl.ItemsIndex:=0;,TopIndex属性:,ListBoxl.TopIndex:=12;,返回,上一页,下一页,项目6单词积累器,Items对象的Strings属性:,ListBoxl.Items.Strings0:=被更新选项;,(3)ListBox组件的常用方法。,列表框新增选项:,ListBoxl.Items.Add(列表框新增加一项);,插入新选项:,ListBoxl.Items.Insert(1,在第二项插入新项);,删除已有选项:,ListBoxl.Items.Delete(6);,清空列表框:,ListBox.Clear;或者ListBox.Clear();,返回,上一页,下一页,项目6单词积累器,2.ComboBox组件,ComboBox组件主要用于制作组合框,组合框是由一个编辑框和列表框组合而成的下拉式列表框,除了具有ListBox组件的功能以外,还提供可输入文字的功能。ComboBox组件常用属性如,表3-17,所示。,3.BitBtn组件,BitBtn组件称做位图按钮。与Button组件不同的是,Button组件只能显示文字,而位图按钮既可以显示文字,又可以显示位图。有时,使用位图按钮比使用命令按钮更加生动和直观。它与Button组件有很多相似之处。,BitBtn组件的主要属性如,表3-18,所示。,返回,上一页,项目7模仿迅雷窗口,项目说明,界面是程序的面孔,很多应用程序的界面给用户留下了深刻的印象,如迅雷的下载窗口,既透明又总是在最前面。本实例说明如何利用Delphi制作一个Windows2000下的透明窗体。值得注意的是,本程序在Windows 98环境下不能够得到透明效果,因为AlphaBlend属性和AlphaBlendValue属性只支持Windows 2000及以后版本的操作系统。通过这个实例,读者不但可以体验到Delphi的强大功能,还可以为自己的应用程序界面加上看起来很神奇的透明效果(如,图3-18,所示)。,返回,下一页,项目7模仿迅雷窗口,项目分析,运行窗体后可以通过TrackBar组件滑块的调节来改变窗体的透明度,并且窗体总是显示在其他应用程序的前面。,1.窗体中添加的组件,(1)选择组件模板的“Additional”选项卡,选择一个Image组件添加到窗体中,用来显示一幅图片。,(2)选择组件模板的“Win32”选项卡,选择一个TrackBar组件添加到窗体中,用来调节窗体的透明度。,(3)窗体中组件的主要属性如,表3-19,所示。,(4)窗体的设计效果如,图3-19,所示。,返回,上一页,下一页,项目7模仿迅雷窗口,2.项目事件,(1)在程序运行过程中用户可以通过调节TrackBar组件上滑块的位置来设置窗体的透明程度。这就要由TrackBar组件的OnChange事件来完成:,procedure TForm1.TrackBar1Change(Sender:TObject);,begin,form1.AlphaBlendValue:=TrackBar1.Max-TrackBar1.Position;,end;,返回,上一页,下一页,项目7模仿迅雷窗口,(2)由上面的代码可以看出还需要设置窗体的AlphaBlend属性为True,通过改变窗体的AlphaBlendValue属性值即可设置窗体的透明度。,(3)Delphi为窗体提供了一个属性FormStyle,通过设置这个属性为fsStayOnTop,就可以实现在程序运行过程中,不管用户如何切换应用程序,本窗体却始终显示在最前面。如果读者想要取消这种效果,可以将FormStyle属性设置为fsNormal。,项目实现,返回,上一页,下一页,项目7模仿迅雷窗口,学习支持,1.Image,(1)Image(图像)组件是Delphi提供的具有强大功能的组件。Image组件主要用于处理、显示各种图片。在窗体上建立一个Image组件,只需在组件模板的“Addition”选项卡上选中“Image”按钮,然后在窗体上适当位置单击鼠标左键,便完成了一个Image组件的建立。,(2)Image组件的主要属性如,表3-20,所示。,返回,上一页,下一页,项目7模仿迅雷窗口,(3)Image组件支持的图像文件格式。,Bitmap格式:这种图片的文件扩展名为bmp,通常被称为位图。位图属于非压缩的像素矩阵图像,Windows中经常用这种格式存取图片。它占用的空间一般较大。,Icon格式:这种图片的文件扩展名为ico,通常被称为图标。图标属于压缩的像素矩阵图像,显示图标文件时,Stretch属性将无效。,MetaFile格式:通常被称为图元文件。这种图片的文件扩展名为wmf(图元文件)或emf(加强图元文件),属于向量图形,图形缩放时不失真。它占用的空间一般较小。,JPEG格式:这种图片的文件扩展名为jpg。这种图片属于压缩图像,对画质的损伤很小。因此,JPEG是网络图像传输常用的格式。,返回,上一页,下一页,项目7模仿迅雷窗口,2.TrackBar,(1)要在当前窗体上建立一个TrackBar跟踪条组件,只需在组件模板的“Win32”选项卡上选中TrackBar组件按钮,然后在窗体上适当位置
展开阅读全文