《Delphi 7教程7.ppt》由会员分享,可在线阅读,更多相关《Delphi 7教程7.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本章要点:本章要点:组件的基本概念组件的基本概念窗体和按钮组件的使用窗体和按钮组件的使用标签和编辑组件的使用标签和编辑组件的使用列表框和组合框组件的使用列表框和组合框组件的使用其他组件的使用其他组件的使用第7章 常 用 组 件7.1窗体和按钮组件窗体和按钮组件组件(Components)是在工程设计时可以使用、处理的可视对象,是那些用于生成用户界面以及为程序提供附加功能模块的对象。Delphi7.0提供了大量的可视组件,可以利用第三方组件的接口,丰富Delphi7.0应用程序,本章介绍Delphi7.0的常用组件,在第7章进一步介绍基于组件的开发。打开Delphi7.0的默认界面,在Compo
2、nentpalette中选择相关组件添加到默认表单中。但有时会发生在组件面板中找不到需要的组件图标的情况,不妨试试下面的操作。单击View菜单,选择Componentlist菜单项将出现如图7-1所示对话框。图7-1Components对话框7.1.1窗体组件(窗体组件(1)窗体是可以放置各种组件的一个窗口,在运行时就是一个窗口,它是应用程序的主要界面,它的友好直接影响程序的使用和质量。接下来介绍窗体的常用属性和事件。1.常用属性常用属性2.Name属性、Formstyle属性、Icon属性、Visible属性 3.2.常用事件常用事件4.OnCreate事件、OnKeyDown事件、OnDe
3、stoy事件【例7-1】窗体用法。进入Delphi7.0集成开发环境,对默认的表单的一些属性进行设置,如下所示:name:MainFormCaption:主窗体Formstyle:fsMDIForm7.1.1窗体组件(窗体组件(2)单击File,选择New后单击Form,在出现的另一个表单中作如下修改:name:SubFormCaption:子窗体Formstyle:fsMDIChild为SubFrm表单中OnClick事件添加如下代码:procedureTSubForm.FormClick(Sender:TObject);beginSubform.Color:=clred;end;单击Run
4、菜单运行程序,当单击子窗体时,发现子窗体的颜色发生了改变。程序运行结果如图7-2所示。注意:注意:由于只是为了演示组件的功能,所以对程序本身实现的意义并不关心,这一点需要注意。图7-2窗体应用7-2窗体应用7.1.2按钮类组件按钮类组件(1)在Delphi7.0中,常用的按钮类组件可分为三种:普通按钮(Button)组件、位图按钮(BitBtn)组件和加速按钮(SpeedButton)组件。下面介绍它们的用法。1.Button按钮组件按钮组件常用属性与事件:ShowHint属性 Hint属性 Default属性 Cancel属性 ModalResult属性 OnClick事件:发生下列情况触发
5、该事件。2.BitBtn按钮组件按钮组件2.位图按钮组件位于组件面板的Additional标签页,与Button组件所不同的是多了一个位图符号在按钮上,该组件用于创建一个其上带有位图的按钮,其中大部分属性和事件与Button一致,这里仅介绍它所独有的属性。常用属性与事件:Kind属性 Glyph属性 NumGlyphs属性 Layout属性 OnClick事件7.1.2按钮类组件按钮类组件(2)3.SpeedButton加速按钮组件加速按钮组件加速按钮组件位于组件面板的Additional标签页,常常被放在Panel组件上,用于设计工具栏,它和Bitbtn组件非常相似,也可以显示图像和文本,但
6、通常只显示图像,它的特殊属性如下。常用属性与事件:AllowAllUp属性Down属性GroupIndex属性MouseIncontrol属性【例7-2】针对上面介绍的内容来编写一个小的程序。目的是熟练按钮的有关属性和方法,程序本身没有实际意义。进入Delphi7.0环境中,设计如图7-3所示窗体。图7-3按钮类实例程序该窗体上并排添加了三个名为sb1、sb2、sb3的SpeedButton按钮、一个名为B1的Button按钮和一个名为Bb1的BitBtn按钮,分别如下设置它们的属性值:7.1.2按钮类组件按钮类组件(3)Sb1.GroupIndex:=1;Sb1.Flat:=true;Sb1
7、.Hint:=thisisaspeedbutton;Sb1.ShowHint:=true;Sb1.AllowAllUp:=False;Sb2.GroupIndex:=1;Sb3.GroupIndex:=1;B1.caption:=next;Bb1.Kind:=bkClose;使用PictureEditor分别为sb1sb3按钮的Glyph属性设置一个对应的位图文件,这些位图文件分别在delphi7.0DomosDocGraphex目录下,当然,可以自己选择合适的位图文件。在B1按钮的OnClick事件中添加如下代码,注意i变量在implementation之前应该先给予定义:vari:inte
8、ger=0;7.1.2按钮类组件按钮类组件(4)在B1按钮的OnClick事件中添加如下代码,注意i变量在implementation之前应该先给予定义:vari:integer=0;procedureTForm1.B1Click(Sender:TObject);beginifi=0thenbeginsb1.Down:=true;i:=1;endelseifi=1thenbegin程序运行过程中,可以通过连续单击next按钮实现三个SpeedButton的按下动作,按Close按钮退出程序。sb2.down:=true;i:=2;endelseifi=2thenbeginsb3.Down:=t
9、rue;i:=0;endend;7.2文本类组件的使用文本类组件的使用文本类组件是进行界面设置中最常用的组件,本节主要介绍标签组件和编辑框组件。7.2.1标签组件标签组件本身不是窗口,因此已没有窗口句柄,也不会有输入焦点,但可以把它与标准的组件关联,下面介绍该组件中的一些常用属性。Alignment属性、Autosize 属性、Focuscontrol属性、Transparent属性、WordWrap属性、ShowAccelChar属性:7.2.2编辑框组件1.Edit组件组件位于组件面板的Standard标签页,用户可以在其中输入单行文字或数据,同时可能用于显示信息,下面介绍它的常用属性及主
10、要的事件和方法。7.2.2编辑框组件编辑框组件(1)AutoSelect 属性、CharCase 属性、MaxLength属性、Passwordchar属性、Text属性Clear方法、CopyToClipboard 方法、CutToClipboard 方法PasteFromClipboard 方法、OnChange 事件、当编辑框中的内容发生改变时,将触发这个事件。2.Memo组件组件Memo组件位于组件面板Standard标签页,Memo组件中的属性和Edit组件存在着许多相似之处。不同的是,Memo组件中可以显示和编辑多行文本,下面介绍它的常用属性及事件和方法。Lines属性、Maxle
11、ngth属性、ScrollBar 属性、WantReturns属性、WantTabs属性、Clear方法、Add方法、SelectAll 方法、ClearSelection方法7.2.2编辑框组件编辑框组件(2)3.MaskEdit组件组件该组件位于组件面板的Additional标签页,功能与Edit组件相似,用于显示和编辑具有指定格式的文本,如特定格式的时间等。EditMask属性图7-4InputMaskEditor对话框4.LabelEdit组件组件位于组件面板的Additional标签页,它的作用相当于使用Label组件和Edit组件的组合,常用属性如下。EditLabel、Label
12、Position、LabelSpaceing7.2.2编辑框组件编辑框组件(3)【例7-3】文本类组件的使用。进入Delphi7.0环境,创建2个Button按钮、1个Edit组件和1个Memo组件,如图7-5所示。在Form1的Oncreate事件中添加如下代码:procedureTForm1.FormCreate(Sender:TObject);beginform1.Caption:=文本类组件演示程序;edit1.Text:=;edit1.TabOrder:=0;memo1.TabOrder:=1;memo1.ScrollBars:=ssVertical;button1.TabOrder
13、:=2;button2.TabOrder:=3;memo1.Lines.Clear;button1.Caption:=&Clear;button2.Caption:=&Add;end;图7-5文本类组件使用7.2.2编辑框组件编辑框组件(4)在Edit1组件的Onchange事件中加入如下代码:procedureTForm1.Edit1Change(Sender:TObject);beginmemo1.Lines.Add(edit1.Text);end;分别在Button1、Button2的Onclick事件中添加如下代码:procedureTForm1.Button1Click(Sender
14、:TObject);beginmemo1.Lines.Clear;temp:=temp+edit1.Text;edit1.Text:=;end;procedureTForm1.Button2Click(Sender:TObject);beginmemo1.Clear;temp:=temp+edit1.Text;memo1.Text:=temp;end;7.3列表框组件和组合框组件列表框组件和组合框组件在Windows应用程序中,除了一些无规律数据的输入外,大量地使用了特定数据的录入和编辑。对于这些有规律的数据,就可使用列表框和组合框组件。列表框和组合框组件对于减少用户输入,增加程序的易用性方面
15、都有极大的帮助。接下来介绍这两个组件的比较重要和常用的属性、事件和方法。7.3.1列表框组件即ListBox组件,位于组件面板的standard标签页,它们以滚动列表的形式显示条目以供用户选择,极大减轻了用户对应用程序的操纵。常用属性:Colums属性、ExtendedSelect属性、Items属性、ItemHeight属性 ItemIndex属性、MultiSelect属性、Sorted属性、Style属性【例7-4】列表框的使用。进入Delphi7.0环境后在默认表单中添加2个Memo组件和2个Label组件。在form1的Oncreate事件中添加如下代码:7.3.1列表框组件列表框组
16、件(1)procedureTForm1.FormCreate(Sender:TObject);beginform1.Caption:=组合框演示程序;Listbox1.Sorted:=true;Listbox1.Font.Style:=fsBold;Listbox2.Sorted:=true;ListBox2.Font.Style:=fsBold;Listbox1.Items.Add(TheCProgramming);Listbox1.Items.Add(OperatingSystem);Listbox1.Items.Add(DataStructure);Listbox1.Items.Add(
17、ApplicationofDatabase);Listbox1.Items.Add(ComputerNetworkPrinciple);Listbox1.Items.Add(SoftwareEngineering);end;在Listbox1组件和Listbox2组件的Onclick事件中分别添加如下代码:procedureTForm1.ListBox1Click(Sender:TObject);vari:Integer;str,st:string;begin7.3.1列表框组件列表框组件(2)i:=Listbox1.ItemIndex;str:=Listbox1.Items.Stringsi
18、;st:=Listbox2.Items.Text;ifstrpos(pchar(st),pchar(str)=nilthenListbox2.Items.Add(listbox1.Items.Stringsi);end;procedureTForm1.ListBox2Click(Sender:TObject);vari:Integer;begini:=Listbox2.ItemIndex;listbox2.Items.Delete(i);end;程序运行结果如图7-6所示。图7-6组合框演示程序注意:注意:上面的程序可以通过双击左边SelectionItems栏中作选的课目而将其添加到右边的R
19、esult栏中。如果右边已经有的则不会再添加。同样,可以在右边通过双击将该课目去掉。7.3.2组合框组件组合框组件(1)DropDownCount属性、Dropped Down属性、Style属性、OnDropDown事件。列表框虽然可以提供多个选项供用户选择,但对于大小有限的窗口来说,这是一笔不小的开销。为了最大限度地节省应用程序窗口空间,Delphi7.0提供了组合框组件。与列表框相比,组合框能有效地利用屏幕空间。接下来介绍其独特的一些常用的属性及主要的事件和方法。【例7-5】组合框的使用。进入Delphi7.0环境后在默认表单中添加1个Label组件和2个ComboBox组件。在form
20、1的Oncreate事件中添加如下代码:procedureTForm1.FormCreate(Sender:TObject);beginForm1.Label1.Caption:=汉字;Form1.Label1.Font.Size:=8;Form1.ComboBox1.Text:=宋体;Form1.Combobox2.Text:=inttostr(label1.Font.size);end;7.3.2组合框组件组合框组件(2)在ComboBox1组件和ComboBox2组件的OnChange事件和OnDropDown事件中分别添加如下代码:procedureTForm1.ComboBox1Ch
21、ange(Sender:TObject);beginForm1.Label1.Font.Charset:=GB2312_CHARSET;Form1.Label1.Font.Name:=Form1.ComboBox1.Text;end;procedureTForm1.ComboBox2Change(Sender:TObject);beginForm1.Label1.Font.Size:=strtoint(Form1.ComboBox2.Text);end;procedureTForm1.ComboBox1DropDown(Sender:TObject);beginwithcombobox1dob
22、eginitems.BeginUpdate;items.Clear;7.3.2组合框组件组合框组件(3)sorted:=true;items:=screen.Fonts;items.EndUpdate;end;end;procedureTForm1.ComboBox2DropDown(Sender:TObject);vari:Integer;beginwithcombobox2dobeginitems.BeginUpdate;items.Clear;i:=1;whilei80dobeginItems.Add(inttostr(i);i:=i+2;end;items.EndUpdate;end;
23、end;程序执行结果如图7-7所示。图7-7组合框演示程序7.4对话框组件和对话框函数对话框组件和对话框函数7.4.1常用对话框组件Delphi7.0提供了几个标准对话框组件:打开、存储文件、设置字体和颜色、查找、打印、设置打印机组件等。它们都位于组件面板的Dialogs标签页;当然,这些对话框的外观仍然取决于用户使用的Windows版本,在程序执行过程中调用相关组件的execute方法,就会激活相应的对话框。1.打开文件对话框组件和保存文件对话框组件OpenDialog组件和SaveDialog组件有许多相似之处,不同是OpenDialog组件用于提供一个打开对话框,供用户进行文件的选择和打
24、开,而SaveDialog组件用于保存文件。OpenDialog组件常用的属性值如下几种。DefaultEXT属性、Filter属性、InitialDir属性、Title属性 7.4.1常用对话框组件常用对话框组件2.字体对话框组件和颜色对话框组件字体对话框组件和颜色对话框组件即FontDialog组件和ColorDialog组件。FontDialog组件封装了Windows的字符集,可以提供一个字体对话框,供用户设置文本的字体、字号;ColorDialog组件用于提供一个标准的颜色选择对话框,用户可以通过它来选择颜色。它们的常用属性如下:MaxFontSize属性、MinFontSize属性
25、、Options属性、Color属性。3.打印选项组件和打印设置组件打印选项组件和打印设置组件即PrintDialog组件和PrintSetupDialog组件。PrintDialog封装了标准Windows打印选项对话框,用于向打印机传递打印任务;PrintSetupDialog组件用来完成打印设置任务。4.文本搜索组件和文本替换组件文本搜索组件和文本替换组件即FindDialog组件和ReplaceDialog组件。FindDialog组件封装了标准Windows的文本搜索对话框,允许用于在文件中查找一段文字;ReplaceDialog组件包含了FindDialog的所有功能,用来完成文本
26、的替换任务。接下来介绍这两个组件常用的属性:FindText属性、OnFind事件、OnClose事件。7.4.2对话框函数对话框函数(1)1.ShowMessage()函数()函数用于在程序运行过程中显示一个包含字符串信息的对话框。用户只有对这个对话框进行准确响应后,才能关闭对话框。用法如下:ShowMessage(constMsg:string);例如:ProcedureTform1.Button1click(Sender:TObject);beginShowMessage(helloworld);end;2.MassageDlg()函数()函数用于在程序运行过程中显示一个包含一个字符串的
27、位图和按钮等信息的对话框,用户只有对这个对话框进行准确响应后,才能关闭对话框,语法如下:FunctionMessageDlg(constMsg:string;Atype:TMsDlgType;Abuttons:TmsDlgButtons:HelpCtx:longint):word;其中TmsDlgType在Windows单元文件中有如下定义:7.4.2对话框函数对话框函数(2)TypeTMsgDlgType=(mtWarning,mtError,mtInformation,mtConfirmation,mtCustom);分别表示在该显示对话框中将显示的标题和位图信息:警告、错误、信息、确认,
28、以及按照调用该函数的应用程序名。3.InputBox()函数()函数该函数用于在程序运行过程中显示一个包含字符串和按钮信息的输入对话框,用户对这个对话框进行准确响应后,才能关闭该对话框,在Dialogs单元文件中有如下定义:FunctionInputBox(constAcaption,Aprounpt,Adefault:string):string;例如:如下代码可以返回用户输入的字符串,提示窗口如图7-9所示。Inputbox(输入,inputastring,);图7-9InputBox函数7.5菜单组件、工具栏组件和状态栏组件菜单组件、工具栏组件和状态栏组件对于一个实际的应用程序来说,菜单
29、栏、工具栏和状态栏是必不可少的部分,接下来分别予以介绍。菜单ManiMenu组件位于组件面板的standard标签页,可以利用它来创建窗体的主菜单。7.5.1菜单组件1.创建主菜单和子菜单的方法创建主菜单和子菜单的方法2.添加菜单命令添加菜单命令3.创建热键方法创建热键方法4.创建快捷键方法创建快捷键方法5.创建分隔符方法创建分隔符方法注意:注意:在有些子菜单中,如果子菜单项的数目较多,可以把它们分组,设定一些分隔符,这在应用程序的菜单中是非常普遍的。7.5.2弹出式菜单组件弹出式菜单组件除了MainMenu组件外,还有一种弹出式菜单(PopupMenu)组件,在创建方法上与MainMenu非
30、常类似,不同的是一般以鼠标的右键或其他快捷键来激活菜单。菜单的位置是在屏幕上“浮动”的,它的位置是根据鼠标的当前位置决定。可以按照MainMenu组件的方法创建PopupMenu组件的一些菜单项,并将含有该PopupMenu组件的窗体的PopupMenu属性设置为PopupMenu组件的名称。当用户右击窗体时,便显示该弹出式菜单。如图7-10就是PopupMenu组件的运行效果。不难发现,使用弹出式菜单可使程序具有与用户更友好的界面。图7-10PopupMenu组件的运行效果7.5.3工具栏组件工具栏组件在Windows应用程序中,工具栏是最常见的。它可以将最常用的功能集中在一起,用图标的形式
31、提供快捷的访问方式。在Delphi7.0中也提供了工具栏(ToolBar)组件,在Win32组件页中。ToolBar组件的属性很多,下面介绍一些常用的属性。Align属性、AutoSize属性、ButtonHeight、ButtonWidth属性、Flat属性、Images属性、List属性、ShowCaption属性、Grouped属性、ImageIndex属性、Down属性、Style属性ToolButton组件通过右键单击ToolBar组件的弹出菜单中的NewButton选项来产生,ToolButton组件的所有按钮图标都由Imagelist组件来提供。所以ToolBar工具栏组件要与I
32、magelist组件配合使用,有多少个ToolButton组件就要在Imagelist组件中装入多少个图标组件。7.5.47.5.4状态栏组件状态栏组件Delphi7.0提供了状态栏组件(StatusBar),使用Delphi7.0提供的状态栏组件可以全面实现应用程序中状态栏的功能。下面介绍状态栏组件的主要属性、事件和方法。1.状态栏组件的属性和事件状态栏组件的属性和事件Align属性、SimplePanel属性、SimpleText属性、SizeGrip属性、Panels属性。2.显示面板组件(显示面板组件(StatusPanel)显示面板组件并不独立存在,而是依附于状态栏控件存在的。在应用
33、程序窗体中添加状态栏组件后,需要在其中添加显示面板组件,基本操作步骤如下。首先在窗体中选择状态栏组件,双击后出现显示面板编辑器。然后,在显示面板编辑器中单击AddNew按钮,将自动添加显示面板。在对象编辑器中,可以对显示面板的属性进行设置。下面是显示面板在应用程序中需要进行设置的属性。Alignment属性、Bevel属性7.6其他常用组件其他常用组件1.字符串网格组件字符串网格组件也称StringGrid组件,位于组件面板的Additional标签页。用于以表格的形式来显示或编辑字符串,主要属性如下。BorderStyle属性、CellsColumn,Row属性:、ColCount属性、Ro
34、wCount属性。7.6.1网格组件2.绘图网格组件绘图网格组件也称DrawDrid组件,位于组件面板的Additional标签页。和StringGrid组件不同的是它可以在行列中显示图形。当要设置或显示网格中的内容时,就需先将该组件的DefaultDrawing属性设置为False,并在OnDrawCell事件中添加相关代码。7.6.2文件目录访问组件文件目录访问组件1.DriveComboBox组件驱动器下拉式列表框控件DriveComboBox显示当前所在的驱动器,并且在执行时允许用户在驱动器之间切换。2.DirectoryListBox组件目录列表框控件DirectoryListBox
35、显示当前驱动器内的目录,并且允许用户在程序执行时切换目录。3.FileListBox组件文件列表框控件FileListBox显示当前目录中的文件,缺省的设置是显示所有文件。通过改变Mask属性来设置过滤器,可以适用DOS的标准通配方式,选择要显示的文件名。当指定多个过滤器时之间用“;”隔开。Delphi7.0提供了强大的文件目录访问组件。可以针对具体的用途设计自定义的文件对话框。在组件面板中的System页,你将发现这些组件。它们是驱动器下拉式列表框DriveComboBox组件、目录列表框DirectoryListBox、文件列表框FileListBox。7.6.3其他组件其他组件(1)1.
36、TabControl组件组件用于向窗体添加标签。当用户选择不同的标签时,可以在该组件的OnChange事件中更新其内容。该组件常用属性如下。Hint属性、TabIndex属性、TabPosition属性、Tabs属性2.PageControl组件组件该组件含有一套页面,单击不同的标签可出现不同的页面。它与TabControl组件不同,TabControl组件只有一个页面,单击不同的标签时组件显示什么内容由程序控制;而PageControl组件在单击不同的标签时可出现不同的页,每页可以含有自己的内容。3.ScrollBox组件组件用于向窗体添加滚动框。当要添加的组件较大或较多时,使用滚动框十分方
37、便。Kind属性、Visible属性、SmallChange属性、LargeChange属性、4.TrackBar组件组件TrackBar是一个滑块组件。表示在一个选中范围内所处的位置。在程序运行时可拖动滑块或单击滑杆来移动位置。还可以通过按PageUp和PageDown键来移动滑块。Frequency属性、Max属性、Min属性、Orientation属性、Position属性7.6.3其他组件其他组件(2)5.ProgressBar组件组件是一个进度栏组件。用于反馈应用程序中过程的处理进度。Max属性、Min属性、Position属性、6.Timer组件组件控件面板上的System控件页,
38、有一个Timer(计时器)组件,它能够有规律地触发OnTimer事件,发送信息给应用程序。Timer的主要属性如下。Enabled属性、Interval属性7.UpDown组件组件含有一对箭头按钮,单击这两个箭头按钮可改变数值的大小。AlignButton 属性、ArrowKeys属性、Associate属性、Max属性、Min属性、Position属性7.7组件应用()组件应用()前面介绍了Delphi7.0的常用组件,下面通过一个Word支持的RTF编辑器来进一步说明组件的综合使用方法。在这个程序中,使用RichEdit组件、OpenDialog组件、SaveDialog组件、FontDi
39、alog组件和MainMenu组件。该程序主要功能如下:能够进行文件的建立、打开和保存;能够进行文本的输入和编辑;能够设置文本的字体和样式。具体方法如下:进入Delphi7.0环境,在默认表单中添加RichEdit组件、OpenDialog组件、SaveDialog组件、FontDialog组件和MainMenu组件各一个,如图7-12所示。图7-12RTFEditor主界面7.7组件应用()组件应用()进入菜单设计器,如表7-1设置各菜单项。文件(&F)编辑(&E)格式(&O)帮助(H)打开(&O)撤销(&Z)字体(&F)保存(&S)-剪切(&T)退出(&X)复制(&C)粘贴(&V)-全选(&A)表7-1主菜单中各菜单项设置情况7.7组件应用()组件应用()组件数量设置RichEdit组件1Anchors:akLeft,akTop,akRight,akBottomScrollbars:ssBothLine:FontDialog组件1默认值即可OpenDialogs组件1Filter:*.RTfSaveDialog组件1Filter:*.RTf各组件设置如表7-2所示。程序单元代码见本教程P125页按F9键,程序执行结果如图7-13所示。图7-13程序执行情况