Delphi程序的设计及实验指导第4章常用组件.ppt
47页第4章 常用组件导读4.1 组件概述4.2 文本输入类组件4.3 按钮类组件4.4 列表类组件小结习题.导读在使用Delphi 8 for .NET开发应用程序时将广泛地使用到组件可视化组件库〔Visual Component Library,简称VCL〕是Delphi中最重要的部分,通过VCL可以在窗体中方便地构建供用户交互的界面本章将主要介绍Delphi常用组件的基本功能及主要属性、方法等内容学习目标:了解组件的分类掌握文本输入类常用组件的使用掌握按钮类常用组件的使用掌握列表类常用组件的使用.4.1 4.1 组件概述组件概述4.1.1 组组件分件分类类1.可.可视视化化组组件件〔 〔Visual Component))可可视视化化组组件在程序运行期件在程序运行期间间用用户户是可以看到的,也称是可以看到的,也称为组为组件件〔 〔Control)组组件又有两种不同的件又有两种不同的类类型,即基型,即基于窗口的于窗口的组组件和基于件和基于图图形的形的组组件基于窗口的件基于窗口的组组件件〔 〔即即窗口窗口组组件件〕 〕是可以在运行是可以在运行时时取得焦点的取得焦点的组组件,能件,能够够包含包含其他其他组组件,件,拥拥有窗口句柄,如有窗口句柄,如Edit组组件。
件图图形形组组件没件没有窗口句柄,不能取得有窗口句柄,不能取得输输入焦点,也不能包含其他入焦点,也不能包含其他组组件,如件,如Label组组件图图形形组组件在最小化使用系件在最小化使用系统资统资源方源方面起着关面起着关键键作用,特作用,特别别是在那些是在那些频频繁使用以及数量大繁使用以及数量大的情况下最好使用的情况下最好使用图图形形组组件,如工具条按件,如工具条按钮钮2.非可.非可视视化化组组件件〔 〔Nonvisual Component))非可非可视视化化组组件是指在程序运行期件是指在程序运行期间间用用户户看不到的看不到的组组件,件,它它们们是从是从TComponent但不是从但不是从TControl派生出来的子派生出来的子类类非可视视化化组组件主要用来向其他件主要用来向其他组组件或整个件或整个应应用程用程序提供某种服序提供某种服务务,在,在设计时设计时无需考无需考虑虑它它们们在窗体中的在窗体中的位置非可位置非可视视化化组组件一般以件一般以图标图标形式形式显显示,最典型的示,最典型的一个非可一个非可视视化化组组件是定件是定时时器器组组件件〔 〔TTimer)4.1 4.1 组件概述组件概述组件的常见基本属性属性含义Height高度Width宽度Left组件在容器中的x坐标Top组件在容器中的y坐标Align组件上的对齐方式:居上、居下、居左、居右、占据剩余Visible设置组件是否显示,默认值为“true”Caption显示组件的标题名称Color显示组件的背景颜色Font设置组件显示文本的字体Ctl3D是否以3D方式显示组件,默认值为“true”ShowHint是否显示组件的提示信息,默认值为“true”Hint组件的提示信息Enabled用户是否能够操作Name对组件进行标识的名称TabOrderTab次序.4.1 4.1 组件概述组件概述4.1.2 组组件的常用属性及事件件的常用属性及事件在在Delphi中,每一个中,每一个组组件都具有特定的属性、事件和件都具有特定的属性、事件和方法。
方法组组件的属性是件的属性是对组对组件特性的描述,包括件特性的描述,包括组组件的件的外外观观特性特性〔 〔如位置、尺寸、外形、字体、可如位置、尺寸、外形、字体、可视视性性〕 〕和非和非可可视视化的特性,化的特性,组组件常件常见见的基本属性的基本属性见见表表4-1组组件的件的事件是事件是对组对组件所做的某个件所做的某个动动作或系作或系统统的某些行的某些行为为〔 〔如按如按下鼠下鼠标标、双、双击击鼠鼠标标、窗体装入等、窗体装入等〕 〕的反的反应应每个组组件都件都提供提供满满足用足用户户的各的各类类事件事件处处理器,当理器,当发发生特殊事件生特殊事件时时,,应应用程序将用程序将执执行事件行事件处处理器中的代理器中的代码码组组件的常用事件的常用事件及触件及触发发条件条件见见表表4-2组组件的方法是指属于件的方法是指属于该组该组件件类类或或对对象象类类型型实实例的函数或例的函数或过过程,每一程,每一类组类组件都有自己件都有自己的方法,以的方法,以实现实现各种功能各种功能4.1 4.1 组件概述组件概述组件的常用事件及触发条件事件名触发条件OnClick当鼠标单击时触发本事件OnDblClick当鼠标双击时触发本事件OnMouseDown当鼠标左键按下时触发本事件OnMouseMove当鼠标移动时触发本事件OnKeyDown当按下任意键(包括组合键)时触发本事件OnKeyPress当按下任意键(单字符键)时触发本事件OnKeyUp当松开已按下键时触发本事件OnEnter当获得焦点时触发本事件OnExit当失去焦点时触发本事件OnStartDrag当开始拖动时触发本事件OnDragDrop当组件拖动操作结束时触发本事件.4.2 文本输入类组件在应用程序的界面上,往往需要用户输入文本数据,或者以一定的格式将文本显示给用户,这时可通过文本输入类组件来实现。
4.2 文本输入类组件4.2.1 TLabel组组件件TLabel标签组标签组件位于件位于组组件面板的件面板的Standard选项选项卡上,卡上,如如图图4-1所示,可以用来所示,可以用来显显示一个只示一个只读读的字符串通常的字符串通常利用利用TLabel标签组标签组件在窗体上件在窗体上显显示静示静态态文本,如文本,如显显示示提示信息,也可提示信息,也可显显示示动态动态文本,如用文本,如用TLabel显显示不断示不断变变化的当前化的当前时间时间1.用.用处处TLabel组组件主要用来件主要用来标识应标识应用程序中的其他用程序中的其他对对象,最象,最常常见见的用法是把的用法是把标签标签放在其他放在其他组组件的旁件的旁边边,如放在文,如放在文本框、本框、Memo框及框及单选单选按按钮钮等等组组件的左件的左侧侧或上方标标签签上的文字信息有助于用上的文字信息有助于用户户操作,也可操作,也可为为用用户户提供信提供信息2.主要属性和方法.主要属性和方法TLabel组组件常用的属性件常用的属性见见前面的表前面的表4-1下面介绍绍TLabel组组件的主要属性和方法件的主要属性和方法4.2 文本输入类组件(1〕A1ign属性:该属性决定TLabel组件的显示位置〔使其位于窗口的某个部分)(2〕Alignment属性:该属性设置文字在水平方向的对齐方式,(3〕AutoSize属性:该属性决定标签的大小是否和文字保持一致,其默认值为false,即标签的大小不随文字的大小而变化。
(4〕Layout属性:该属性设置文字在垂直方向的对齐方式,(5〕TransParent属性:该属性决定标签是否透明显示,主要在图形操作时使用,如果将其设置为true,则可透过标签看到背景图(6〕WordWrap属性:该属性决定当AutoSize属性为true时,文字超长时的显示方式该属性为true时,则文字在纵向方向扩展,以多行显示;为false时,则文字在横向方向扩展,以完全容纳文本内容4.2 文本输入类组件4.2.2 TEdit组组件件TEdit文本框文本框组组件位于件位于组组件面板的件面板的Standard选项选项卡上,卡上,如如图图4-1所示,可以所示,可以显显示、示、编辑单编辑单独的一行文本独的一行文本1.用.用处处TEdit组组件提供了一个件提供了一个编辑编辑区域,用区域,用户户可以在区域中可以在区域中输输入入单单行信息TEdit不但允不但允许许用用户户在文本框中在文本框中输输入数据,入数据,也可以用来也可以用来显显示示查询查询的数据及提示信息的数据及提示信息4.2 文本输入类组件2.主要属性和方法.主要属性和方法((1〕 〕AutoSelect属性:属性:该该属性用来属性用来设设置当置当TEdit组组件件获获得得输输入入焦点焦点时时,自,自动选动选中所有的文本。
若它的中所有的文本若它的值为值为true,,则则当当TEdit组组件件获获得得输输入焦点入焦点时时,自,自动选动选中所有的文本;若它的中所有的文本;若它的值为值为false,,则则当当TEdit组组件件获获得得输输入焦点入焦点时时,不自,不自动选动选中所有的文中所有的文本((2〕 〕AutoSize属性:用于控制是否随字体的高度来改属性:用于控制是否随字体的高度来改变编辑变编辑框框的高度当的高度当AutoSize设设置置为为true时时,,编辑编辑框的高度会自框的高度会自动动匹配匹配输输入文字的字体高度但要注意,入文字的字体高度但要注意,该该属性只有当属性只有当BorderStyle属性属性设设置置为为bsSingle时时才有效((3〕 〕CharCase属性:属性:该该属性用于属性用于强强制制组组件中的文本全部件中的文本全部为为大写大写〔 〔或小写或小写〕 〕字母((4〕 〕Enabled属性:属性:该该属性决定文本框中的内容是否可以修改,属性决定文本框中的内容是否可以修改,其默其默认值为认值为true,即文本框中的文本可以修改;当它的,即文本框中的文本可以修改;当它的值为值为false时时其中的文本不能修改。
其中的文本不能修改4.2 文本输入类组件(5〕Hint属性:该属性用来设置所显示的提示信息例如通过将该属性设置为“请输入职工姓名”,并将ShowHint属性设置为true,则在应用程序运行时当用户将鼠标移到文本框并停顿片刻后,将显示引号中的提示信息(6〕ImeMode属性:如果要设置为中文输入法,可以将ImeMode属性设置为imChinese(7〕ImeName属性:可以通过下拉组合框选择一个具体的输入法(8〕PasswordChar属性:将用户输入的所有字符以同一个字符显示,其默认值是“#0”,表示编辑框直接显示用户输入的字符;如果将其设置为“*”,则不论用户输入什么,编辑框中都只显示“*”号,一般在键入密码时可以这样设置(9〕Clear方法:该方法删除文本框中的所有文本4.2 文本输入类组件(10〕ClearSelection方法:该方法删除文本框中被选择的文本如果文本框中没有被选择的文本,则不删除任何内容(11〕CopyToClipboard方法:该方法将文本框中已选择的文本拷贝到剪贴板上,并取代原来剪贴板中的所有内容如果用户未在文本框中选择任何文本,该方法的执行将不删除原来剪贴板的所有内容。
(12〕CutToClipboard方法:该方法将文本框中已选择的文本拷贝到剪贴板上,并取代原来剪贴板中的所有内容,然后删除在文本框中被选中的内容(13〕PasteFromClipboard方法:该方法将剪贴板上的内容拷贝到文本框中,并插入到文本框中光标所在的当前位置(14〕SelectAll方法:该方法选择文本框中的所有文本Edit组件最常用的事件〔也是默认事件〕为OnChange,一旦Edit组件中的文本内容发生了改变,就会触发OnChang.4.2 文本输入类组件【例4-1】设计用户登录验证的窗体,用来接收用户输入的用户名和口令,单击“确定〞按钮进行验证,根据输入是否正确显示相应的提示信息4.2 文本输入类组件编写DengLu窗体相应的程序代码将组件添加到DengLu窗体后,编写相应的程序代码(*定义2个unit级符号常量*)const iusename='yonghu'; //定义用户名 ipassword='12345'; //定义口令双击“确定〞按钮,在代码编辑区中输入该按钮的OnClick事件处理代码:procedure TDengLu.BtnOKClick(Sender:TObject); begin if ( usename.text=iusename)and(password.text=ipassword) then MessageDlg('欢迎使用教师人事档案系统!', mtInformation, [mbOK], 0) else MessageDlg('对不起,您不是合法用户!请重新输入用户名和密码', mtInformation, [mbOK], 0); end;双击“取消〞按钮,在编辑区输入该按钮的OnClick事件代码:procedure TDengLu.BtnCancelClick(Sender: TObject);begin close;End;.4.2 文本输入类组件4.2.3 TMemo组组件件TMemo备备注框注框组组件位于件位于组组件面板的件面板的Standard选项选项卡上,卡上,可以可以显显示、示、编辑编辑多行文本。
多行文本1.用.用处处TMemo组组件件为为用用户户提供了一种提供了一种处处理多行文本的方法,理多行文本的方法,还还可用来快速可用来快速阅读阅读文件中的数据尽管文件中的数据尽管TLabel、、TEdit和和TMemo组组件有件有许许多相似之多相似之处处,但它,但它们们的使用的使用场场合却合却有所不同如果只有所不同如果只显显示用示用户户不能修改的信息,可采用不能修改的信息,可采用标签标签;如果用;如果用户户只只处处理理单单行信息,行信息,则则使用使用TEdit组组件;件;如果用如果用户户要要处处理多行文本,那么只能采用理多行文本,那么只能采用TMemo组组件4.2 文本输入类组件2.主要属性.主要属性TMemo组组件的很多属性件的很多属性〔 〔如如MaxLength、、ReadOnly和和Text等等〕 〕和和TEdit组组件的属性件的属性类类似,相同属性的含似,相同属性的含义义不再不再赘赘述以下是述以下是TMemo组组件的特殊属性件的特殊属性((1〕 〕Lines属性:返回属性:返回TMemo组组件中文本的行数件中文本的行数((2〕 〕ScrollBars属性:属性:该该属性用来属性用来设设置置TMemo组组件是否含件是否含滚动滚动条,条,((3〕 〕WantTabs属性:属性:该该属性用来属性用来设设置是否可以使用置是否可以使用Tab键键来来进进行文行文本本编辑编辑。
若其若其值设值设置置为为true,,则则可以用可以用Tab键键来使来使TMemo组组件件获获得得输输入焦点,但不能用入焦点,但不能用Tab键键从从TMemo组组件切件切换换到其他到其他组组件,默件,默认认值为值为false4.2 文本输入类组件4.2.4 TRichEdit组组件件TRichEdit组组件和件和TMemo组组件几乎完全相同,但是件几乎完全相同,但是TRichEdit组组件中的文字可以有多种字体、多种件中的文字可以有多种字体、多种颜颜色TRichEdit组组件位于件位于组组件面板的件面板的Win32选项选项卡上,如卡上,如图图4-4所示TRichEdit组组件可以件可以编辑编辑多行文本,它比多行文本,它比TMemo的功能的功能更更强强大,能大,能够对够对字体格式化和段落格式化,也能插入字体格式化和段落格式化,也能插入OLE文档,支持鼠文档,支持鼠标标拖放,拖放,还还可以搜索和打印它是可以搜索和打印它是一个相当完美的一个相当完美的编辑编辑器,保存的文件格式器,保存的文件格式为为RTF但是是TRichEdit组组件没有提供完整的用件没有提供完整的用户户界面,界面,诸诸如打开、如打开、保管、打印、剪保管、打印、剪贴贴、拷、拷贝贝、搜索等操作,需要通、搜索等操作,需要通过编过编程,程,结结合其他合其他组组件来完成。
件来完成TRichEdit的主要属性、事件和方法与的主要属性、事件和方法与TMemo基本相似,基本相似,在功能上在功能上TRichEdit更加丰富更加丰富.4.3 按钮类组件Delphi为用户提供了3种按钮组件,也是平时在Windows应用程序中经常用到的按钮:普通按钮〔Tbutton)位图按钮〔TBitBtn)加速按钮〔TSpeedButton).4.3 按钮类组件4.3.1 TButton组组件件TButton命令按命令按钮组钮组件位于件位于组组件面板的件面板的Standard选项选项卡上,如卡上,如图图4-1所示1.用.用处处TButton组组件是提供件是提供给给用用户户用来用来执执行命令的行命令的组组件,通件,通常称常称为为命令按命令按钮钮按钮钮在在Windows程序中使用非常广程序中使用非常广泛,它可以放在泛,它可以放在应应用程序的任何地方,触用程序的任何地方,触发发之后之后执执行行特定的操作特定的操作4.3 按钮类组件2.主要属性.主要属性((1〕 〕Cancel属性:属性:该该属性决定按属性决定按钮钮是否是否为为Cancel按按钮钮当设设置置为为true时为时为Cancel按按钮钮,即当用,即当用户户按按Esc键时键时,将,将执执行按行按钮钮的的OnClick事件事件处处理程序。
当窗体中有多个理程序当窗体中有多个Cancel按按钮时钮时,,则则只只调调用用TabOrder属性最小的按属性最小的按钮钮的的OnClick事件((2〕 〕Caption属性:属性:该该属性用来属性用来让让用用户识别组户识别组件,件,输输入属性入属性值值显显示在示在组组件表面((3〕 〕Default属性:属性:该该属性决定按属性决定按钮钮是否是否为为默默认认按按钮钮如果将其其设设置置为为true则则按按钮为钮为默默认认按按钮钮,此,此时时当用当用户户按按Enter键时键时,,将将执执行按行按钮钮的的OnClick事件事件处处理程序((4〕 〕Enabled属性:属性:该该属性决定按属性决定按钮钮是否能是否能对对鼠鼠标标、、键盘键盘和和计计时时器事件做出响器事件做出响应应((5〕 〕ModalResult属性:属性:该该属性确定按属性确定按钮钮的父窗体的关的父窗体的关闭闭方式((6〕 〕Name属性:属性:该该属性是属性是组组件的名称,与件的名称,与Caption不同,它不不同,它不显显示在示在组组件表面,而是在件表面,而是在应应用程序代用程序代码码中作中作为组为组件的名称件的名称标标识识.4.3 按钮类组件4.3.2 TBitBtn组组件件TBitBtn位位图图按按钮组钮组件位于件位于组组件面板的件面板的Additional选项选项卡上,它卡上,它为图为图形按形按钮组钮组件。
件1.用.用处处TBitBtn组组件与其他按件与其他按钮钮一一样样,在,在对话对话框和窗体中广泛框和窗体中广泛使用该组该组件的作用和件的作用和TButton组组件相同,惟一的区件相同,惟一的区别别是可以在位是可以在位图图按按钮钮上同上同时显时显示文本信息和位示文本信息和位图图4.3 按钮类组件2.主要属性.主要属性((1〕 〕Glyph属性:属性:该该属性指定在用属性指定在用户选择户选择的位的位图图按按钮钮表面表面显显示示的的图图形单击该单击该属性右属性右边边的的“…”按按钮钮,,弹弹出装入位出装入位图图文件的文件的Picture Editor对话对话框,如框,如图图4-6所示,所示,单击单击此此对话对话框中的框中的Load按按钮选择钮选择用用户户需要的位需要的位图图,此,此时选择时选择的位的位图图将将显显示在示在对话对话框框中,再中,再单击单击OK按按钮钮后,位后,位图图将将显显示在按示在按钮钮上((2〕 〕Kind属性:属性:该该属性决定位属性决定位图图按按钮钮的种的种类类,包括,包括bkAbort、、bkAll、、bkCancel、、bkClose、、bkCustom、、bkHelp、、bkIgnore、、bkNo、、bkOK、、bkRetry、、bkYes。
((3〕 〕Layout属性:属性:该该属性决定位属性决定位图图在按在按钮钮上的上的显显示位置,即位示位置,即位图图可以可以显显示在按示在按钮钮的左的左边边、右、右边边、上、上边边或下或下边边,包括:,包括:blGlyphBottom、、blGlyphTop、、blGlyphLeft、、blGlyphRight((4〕 〕Margin属性:属性:该该属性确定位属性确定位图图按按钮边钮边沿和位沿和位图边图边沿之沿之间间的的距离,距离,单单位位为为像素该该属性的默属性的默认值为认值为-1,表示位,表示位图图和文字都和文字都在按在按钮钮的中的中间显间显示,但相互不重叠示,但相互不重叠4.3 按钮类组件(5〕NumGlyphs属性:当用户为位图按钮在Glyph属性中指定多个图像时,必须用该属性指定按钮要显示的图像,它的值可以是1~4之一,默认值为1(6〕Spacing属性:该属性确定位图按钮上图像和标题之间的间隔该属性值可以是负数、0和正数,默认值为4(7〕Style属性:该属性决定位图按钮的外观,共有3种可能的值:bsAutoDetect、bsWin31和bsNew,即位图按钮采用Windows哪一种版本的风格。
bsAutoDetect:表示当使用Windows 3.x时,位图按钮采用标准的Windows 3.x外观,当使用Windows 3.x以后的版本时,位图按钮采用较新的外观bsWin31:表示不考虑所运行的Windows版本而采用标准的Windows 3.1外观bsNew:表示不考虑所运行的Windows版本而采用新的位图按钮外观4.3 按钮类组件4.3.3 TSpeedButton组组件件TSpeedButton组组件位于件位于组组件面板件面板Additional选项选项卡上,卡上,如如图图4-5所示,它所示,它为为加速按加速按钮组钮组件1.用.用处处TSpeedButton组组件可以同件可以同时显时显示示图图形和文字,用法与形和文字,用法与位位图图按按钮钮很相似在按很相似在按钮钮上上显显示示图图像像时时,它的,它的图图像必像必须须是是Windows的位的位图图文件(文件(.bmp)该组该组件常和件常和TToolBar、、TPanel等等组组件一起使用,用件一起使用,用户户使用使用该组该组件件可快速建立工具可快速建立工具栏栏和工具面板和工具面板4.3 按钮类组件2.主要属性.主要属性((1〕 〕AllowAllUp属性:属性:该该属性决定同属性决定同组组中的加速按中的加速按钮钮是否可一是否可一个都不个都不选择选择。
如果将其如果将其设设置置为为true,那么在同一,那么在同一组组中的加速按中的加速按钮钮可一个都不可一个都不选择选择,但可以出,但可以出现现;如果将其;如果将其设设置置为为false,,则则必必须选择须选择同一同一组组中的快速按中的快速按钮钮之一,即必之一,即必须须有一个加速按有一个加速按钮钮处处于被按下状于被按下状态态默认值为认值为false((2〕 〕Down属性:属性:该该属性用来属性用来设设置置显显示状示状态态如果将其如果将其设设置置为为true,那么加速按,那么加速按钮钮以按下状以按下状态态〔 〔Down〕 〕显显示;如果将其示;如果将其设设置置为为false,,则则加速按加速按钮钮以未以未选选中中〔 〔UnSelect〕 〕状状态显态显示((3〕 〕Flat属性:若属性:若该该属性属性值为值为true,,则则按按钮钮在未在未选选中状中状态态下没下没有有边边框,只有在框,只有在选选中状中状态态下才有下才有边边框((4〕 〕GroupIndex属性:属性:该该属性决定哪些加速按属性决定哪些加速按钮钮作作为为一一组组默默认值为认值为0,表示,表示该组该组件不属于某个件不属于某个组组。
具有相同具有相同GroupIndex属性属性值值且不且不为为0的加速按的加速按钮钮属于同一个属于同一个组组,当,当单击单击其中之一其中之一时时,,该该按按钮钮一直保持按下一直保持按下〔 〔Down〕 〕状状态态,直到,直到单击单击了同一了同一组组的另一的另一个按个按钮为钮为止4.3 按钮类组件4.3.4 TRadioButton组组件件TRadioButton单选单选按按钮组钮组件位于件位于组组件面板的件面板的Standard选项选项卡上卡上〔 〔如如图图4-1所示),它所示),它为单选为单选按按钮组钮组件,可以件,可以在多个条件中在多个条件中选择选择惟一的一个通常在使用惟一的一个通常在使用单选单选按按钮钮时时,,总总是将其是将其进进行分行分组组在同一组组中,只能同中,只能同时选时选中中一个按一个按钮钮,其余按,其余按钮钮自自动动取消取消选选中在实现单选实现单选按按钮钮的分的分组时组时,可以有两种方法:,可以有两种方法:((1〕 〕利用分利用分组组框框组组件件〔 〔TGroupBox〕 〕和和单选单选按按钮组钮组件件〔 〔TRadioButton〕 〕来来实现实现首先向窗体中添加分。
首先向窗体中添加分组组框,然框,然后向分后向分组组框中添加框中添加单选单选按按钮钮这样这样,同一个分,同一个分组组框中框中的的单选单选按按钮钮就自就自动动成成为为一一组组可以通过过TRadioButton组组件的件的Checked属性来确定哪一个属性来确定哪一个单选单选按按钮钮被被选选中((2〕 〕利用利用单选单选按按钮钮分分组组框框〔 〔TRadioGroup〕 〕实现实现可以通过过ItemIndex属性来确定属性来确定选选中哪一个中哪一个单选单选按按钮钮4.3 按钮类组件1.用.用处处TRadioButton组组件也称件也称为为开关按开关按钮钮单选单选按按钮为钮为用用户户提供了提供了一一组组相互排斥的相互排斥的选项选项按按钮钮,无,无论论何何时选项组时选项组中最多只有一个中最多只有一个选项选项被被选择选择如果在选择过选择过程中又程中又选择选择了另一个按了另一个按钮钮,,则则先先前被前被选择选择的按的按钮钮会自会自动变动变成未成未选择选择状状态态2.主要属性.主要属性((1〕 〕Checked属性:属性:该该属性表示属性表示单选单选按按钮钮是否被是否被选选中如果该该属性属性为为true,,则单选则单选按按钮钮的框中出的框中出现现一个一个圆圆点表示点表示选选中;默中;默认认值为值为false,表示未,表示未选选中。
中((2〕 〕Enabled属性:属性:该该属性用来控制属性用来控制单选单选按按钮钮是否是否处处于激活状于激活状态态默认值为认值为true,即,即为为激活状激活状态态;当;当该该属性属性为为false时时,,处处于于非激活状非激活状态态,此,此时组时组件上件上显显示的字体示的字体为为灰色,表示灰色,表示该该按按钮钮不不起作用((3〕 〕Visible属性:属性:该该属性决定属性决定该单选该单选按按钮钮在窗体上是否可在窗体上是否可见见默默认值为认值为true,即可,即可见见4.3 按钮类组件4.3.5 TCheckBox组组件件TCheckBox复复选选框框组组件位于件位于组组件面板的件面板的Standard选项选项卡上卡上〔 〔如如图图4-1所示),它所示),它为为复复选选按按钮组钮组件,可以件,可以组组成成多多项选择项选择1.用.用处处TCheckBox组组件称件称为为复复选选框,用框,用户户可通可通过单击过单击一个一个选选项项来来选择选择或取消或取消选择该选项选择该选项,在一个,在一个选择组选择组框中一次框中一次可做出多可做出多项选择项选择4.3 按钮类组件2.主要属性.主要属性((1〕 〕Alignment属性:属性:该该属性用于属性用于设设置复置复选选按按钮钮上文字的位置。
上文字的位置taRightJustify表示文字表示文字显显示在小方框的右示在小方框的右边边;;taLeftJustify表表示文字示文字显显示在小方框的左示在小方框的左边边((2〕 〕AllowGrayed属性:属性:该该属性的默属性的默认值为认值为false,,这时这时复复选选框框只有两种状只有两种状态态,即,即“选选中中”、、“未未选选中中”但当该该属性属性为为true时时,,复复选选框框则则有有3种状种状态态,即,即“选选中中”、、“未未选选中〞和中〞和“部分部分选选中〞灰中〞灰色((3〕 〕State属性:属性:该该属性用来属性用来设设置或返回复置或返回复选选框的状框的状态态,可取,可取以下以下值值::cbChecked:表示复:表示复选选框框处处于启用状于启用状态态cbUnchecked:表示复:表示复选选框框处处于未启用状于未启用状态态cbGrayed:表示复:表示复选选框框处处于启用且于启用且变变灰状灰状态态((4〕 〕Checked属性:属性:该该属性用来属性用来检测检测复复选选框当前框当前处处于什么状于什么状态态,,为为true表示表示选选中,中,为为false表示未表示未选选中。
如果复中如果复选选框的框的State属属性性为为cbGrayed或或cbUnchecked,,则则Checked属性属性为为false4.3 按钮类组件【例4-2】在本书第3章例3-1的基础上重新设计教师基本信息输入窗体,设计窗体完成后的效果如图4-8所示此窗口中新添加了两个标签组件、两个单选按钮组件、4个复选框组件组件类型组件名属性名属性值标签(TLabel)Label6Caption性别Label7Caption喜爱阅读哪类书籍单选按钮(TRadioButton)RadioButton1Caption男RadioButton2Caption女复选框(TCheckBox)CheckBox1Caption历史类CheckBox2Caption文学类CheckBox3Caption哲学类CheckBox4Caption科学类.4.4 列表类组件若需要多个选项时,使用单选按钮和复选框往往需要一个很大的窗体才能容纳下,这时就可以使用列表类组件.4.4 列表类组件4.4.1 TListBox组组件件TListBox列表框列表框组组件位于件位于组组件面板的件面板的Standard选项选项卡卡上上〔 〔如如图图4-1所示),在其中可以所示),在其中可以显显示一系列字符串,示一系列字符串,用用户户可以可以选选中其中的一个或多个。
中其中的一个或多个1.用.用处处TListBox组组件用来件用来显显示可示可滚动滚动的的项项目列表,在目列表,在项项目列目列表中可以表中可以选择选择一个或多个一个或多个项项目,但不能直接目,但不能直接对这对这些些项项目目进进行修改列表框中的行修改列表框中的项项目列表是目列表是Items属性的属性的值值,,可可对对列表框中的列表框中的项项目目进进行增加、行增加、删删除和插入操作除和插入操作4.4 列表类组件2.主要属性.主要属性((1〕 〕Columns属性:属性:该该属性用来决定列表框中属性用来决定列表框中项项目的列数,默目的列数,默认值为认值为0,表示列表框以,表示列表框以单单列列显显示((2〕 〕ExtendedSelect属性:属性:该该属性决定是否允属性决定是否允许许使用使用Shift键键和和Ctrl键对键对列表框中的列表框中的项项目目进进行多行多项选择项选择只有当该该属性属性为为true时时,,组组件的件的MultiSelect属性才生效,通属性才生效,通过过配合使用配合使用Shift键选键选择连续择连续多个多个项项目,通目,通过过配合使用配合使用Ctrl键选择键选择不不连续连续的多个的多个项项目。
目如果将如果将该该属性属性设设置置为为false,那么,那么MultiSelect属性即便属性即便设设置成置成true也无意也无意义义((3〕 〕IntegralHeight属性:属性:该该属性决定列表框在窗体上的属性决定列表框在窗体上的显显示示方式设设置置为为true时时,在垂直方向上可完整地看到列表框的,在垂直方向上可完整地看到列表框的项项目;目;设设置置为为false时时,列表框的高度由,列表框的高度由ItemHeight属性决定属性决定((4〕 〕ItemHeight属性:当列表框的属性:当列表框的Style属性属性设设置置为为lbOwnerDrawFixed时时,列表框中的每一个,列表框中的每一个项项目的高度由目的高度由ItemHeight属性来决定;当属性来决定;当Style属性属性为为其他其他值时值时,,ItemHeight属性无意属性无意义义((5〕 〕ItemIndex属性:属性:该该属性返回列表框中的属性返回列表框中的项项目的索引号,目的索引号,从从0开始,依次增开始,依次增14.4 列表类组件(6〕Items属性:该属性用于设置列表框中显示的内容当按下Items属性右边的“…”按钮时,将弹出StringListEditor窗口〔串列表编辑器),用户可在该编辑窗口中输入将要在列表框中显示的项目的默认值。
用户也可在程序运行过程中通过调用相应方法动态地向列表框中增加项目,如在窗体中有一个列表框组件ListBox1,则可通过代码改变列表框的内容,其方法如下:向列表框中增加项目:ListBox1.Items.Add('增加的新项目')删除当前选中的项目:ListBox1.Items.Delete(ListBox1.ItemIndex)清除所有项目:ListBox1.Clear(7〕MultiSelect属性:该属性用来决定用户是否可从列表框中一次选中多项其值为true时,用户可选择多项4.4 列表类组件(8〕SelCount属性:当MultiSelect属性设置为true时,该属性返回在列表框中用户选中的项目的个数(9〕Selected属性:该属性用来检测在列表框中某一项是否被选择,若该属性为true,表示指定的项目被用户选中(10〕Sorted属性:该属性用来控制列表框中的数据是否自动进行排序如果将其设置为true,那么列表框的数据按字母顺序进行排序;默认值为false,即不对数据进行排序(11〕Style属性:该属性用来设置列表框中项目的显示方式常取以下值:lbOwnerDrawFixed: 列表框中的每个项目可以是字符,也可以是图像,其高度由ItemHeight属性决定。
lbOwnerDrawVariable:列表框中的每个项目可以是字符或图像,其高度可变lbStandard:默认值,即列表框中的每个项目作为一个高度相同的字符串显示4.4 列表类组件【例4-3】在例4-2中的InputForm窗体中新添加1个标签和1个列表框,用来输入籍贯,要求使用动态方法向列表框中增加内容添加如下代码: procedure TInputForm.FormCreate(Sender:Tobject);begin //输入如下6行代码 ListBox1.Items.Add('山西'); //使用Add方法向列表框增加项目 ListBox1.Items.Add('北京'); ListBox1.Items.Add('河北'); ListBox1.Items.Add('河南'); ListBox1.Items.Add('湖南'); ListBox1.Items.Add('内蒙古');end; .4.4 列表类组件4.4.2 TComboBox组组件件TComboBox组组合框合框组组件位于件位于组组件面板的件面板的Standard选项选项卡上卡上〔 〔如如图图4-1所示)。
所示)组组合框由合框由1个个编辑编辑框和框和1个下拉个下拉式列表框式列表框组组成,可以从多个列表条目中成,可以从多个列表条目中选择选择一个1.用.用处处TComboBox组组件是件是设计设计Windows应应用程序用程序时时使用使用较较多多的的组组件之一该组该组件件汇汇集了列表框和文本框的功能,集了列表框和文本框的功能,其作用是供用其作用是供用户户从下拉列表中从下拉列表中选择选择数据或直接向数据或直接向组组合合框中框中输输入数据组组合框下拉列表的内容是合框下拉列表的内容是该组该组件的件的Items属性属性值值,,Items属性属性为为字符串字符串类类型4.4 列表类组件2.主要属性.主要属性((1〕 〕DropDownCount属性:属性:该该属性用来属性用来设设置置组组合框下拉列表合框下拉列表中可中可显显示的文本行数默示的文本行数默认值为认值为8,即下拉列表在不需要,即下拉列表在不需要滚动滚动的情况下可以的情况下可以显显示示8个个项项目目〔 〔8行文本)行文本)((2〕 〕Enabled属性:属性:该该属性决定是否使属性决定是否使组组合框合框处处于激活状于激活状态态如果将其如果将其设设置置为为false,,则组则组合框合框处处于非激活状于非激活状态态,程序运行,程序运行时组时组合框区域呈灰色合框区域呈灰色显显示。
示((3〕 〕Style属性:属性:该该属性用来属性用来设设置置组组合框中合框中项项目的目的显显示方式可取以下可取以下值值::csDropDown::为为默默认值认值,是由,是由编辑编辑框和列表框框和列表框组组合而成的合而成的组组合框,列表框中的每一个合框,列表框中的每一个项项目都是高度相同的字符串目都是高度相同的字符串csDropDownList:只有列表框而没有:只有列表框而没有编辑编辑框,每一个框,每一个项项目都目都是高度相同的字符串是高度相同的字符串csOwnerDrawFixed:和:和TListBox组组件的件的lbOwnerDrawFixed方方式相同csOwnerDrawVariable:和:和TListBox组组件的件的lbOwnerDrawVariable方式相同方式相同csSimple:只有:只有编辑编辑框而没有列表框框而没有列表框4.4 列表类组件(4〕Text属性:该属性用来设置或返回编辑框上显示出来的文字内容,也可在程序中对该属性赋值该属性的赋值语句为:<组合框名>.Text:= <组合框名>.Item[索引号];(5〕ItemIndex属性:该属性返回组合框中被选中项目的索引号,从0开始,依次加1。
另外,用户可通过Add、Delete和Insert方法对列表中的项目〔Item〕进行增加、删除和插入操作【例4-4】在本章例4-1的基础上重新设计程序,增加一个显示窗体InfoForm,用来显示所输入的教师的基本信息,(3〕编写代码InputForm窗体的事件处理程序代码如下:implementationuses InfoForm; //引用窗体InfoForm所在单元{$R *.dfm} procedure TInputForm.FormCreate(Sender: TObject);begin //输入如下6行代码 ListBox1.Items.Add('山西'); //使用Add方法向列表框增加项目 ListBox1.Items.Add('北京'); ListBox1.Items.Add('河北'); ListBox1.Items.Add('河南'); ListBox1.Items.Add('湖南'); ListBox1.Items.Add('内蒙古');end;.4.4 列表类组件运行程序.4.4 列表类组件4.4.3 TTreeView组组件件TTreeView组组件位于件位于组组件面板的件面板的Win32选项选项卡上卡上〔 〔如如图图4-4所示),可以用来所示),可以用来显显示具有示具有树树型型层层次的数据。
次的数据1.用.用处处TTreeView组组件在一个件在一个层层次列表中包含了文字、次列表中包含了文字、图图形形和数据它和数据它类类似于似于Windows资资源管理器左源管理器左边边窗格中以窗格中以树树的形式的形式显显示磁示磁盘盘或光或光盘盘上的目上的目录结录结构每一个构每一个节节点点〔 〔称称为为父父节节点点〕 〕可包含其他可包含其他节节点点〔 〔称称为为子子节节点),父点),父节节点点可以用展开或折叠的方式可以用展开或折叠的方式显显示每一个示每一个节节点是一个点是一个TTreeNode对对象,整个列表也是一个象,整个列表也是一个TTreeNode对对象,象,由由Items属性表示属性表示4.4 列表类组件2.主要属性.主要属性((1〕 〕AutoExpand属性:属性:该该属性属性为为true时时,运行,运行时时使使选选中的中的项项展开,展开,未未选选中的中的项项折叠;若折叠;若为为false,,单击选单击选中的中的项时项时并不展开,必并不展开,必须须双双击击才能展开才能展开((2〕 〕Items属性:属性:该该属性相当于一个元素属性相当于一个元素类类型型为为TTreeNode类类型的型的数数组组,用来存放,用来存放TTreeView组组件的每一件的每一项项,通,通过过下下标标来来访问访问各各项项。
例如:例如:TreeNode1:=TreeView1.Items[2]((3〕 〕SelectionCount属性:属性:该该属性用来返回当前属性用来返回当前选选中的中的节节点数目((4〕 〕Selected属性:属性:该该属性用来属性用来访问选访问选中的中的节节点如果没有点如果没有选选中中任何任何节节点,点,则该则该属性返回属性返回值值null((5〕 〕ShowButtons属性:属性:该该属性用来属性用来设设置包含子置包含子节节点的父点的父节节点前点前是否有按是否有按钮钮通过单击过单击按按钮钮来展开或折叠其子来展开或折叠其子节节点4.4 列表类组件注意:树的生成可以在设计阶段进行,通过改变Items属性来实现其方法为:单击Items属性右面的“…”按钮,在弹出的TreeView Items Editor对话框〔如图4-13所示〕中添加树的项另外在TTreeView组件上单击鼠标右键,从弹出菜单中选择Items Editor...也可以打开TreeView Items Editor对话框在TreeView Items Editor对话框中,通过单击New Item按钮为TTreeView组件添加新的节点,New SubItem按钮用来为当前节点添加子节点,Delete按钮用来删除当前节点。
Text后的文本框用来编辑显示在TreeView组件中的节点文字在程序运行期间,可以通过TTreeView组件的Items属性的Add、AddChild、Delete方法等动态地改变树的内容4.4 列表类组件一般在树上的每个项目前会有一个小图标当该项目被选中时,会显示另一个小图标在Delphi中,这些小图标由TImageList组件〔在Win 32组件类中〕进行统一管理,然后在TTreeView组件的Images属性中选择一个TImageList组件,接着具体设置每个项目的ImageIndex属性,就可以选择TImageList组件中相应的图标了如果将RightClick Select属性设置为true,则在树的某个项目上单击鼠标右键时也可以将该项目选中通常要编写TTreeView组件的OnChange事件的处理过程,也就是在树上选择了不同的项目后,执行该事件的处理过程有时也需要编写TTreeView组件OnMouseDown事件的处理过程在函数体中,可以利用GetHitTestInfoAt函数来确定鼠标单击的位置,然后根据不同的单击位置进行相应的操作小结本章主要介绍了三大类型的可视化组件。
其中,文本输入类组件用于在应用程序的界面上输入文本数据,或者以一定的格式将文本显示给用户;按钮类组件用于Windows应用程序中添加各类按钮:包括普通按钮〔TButton)、位图按钮〔TBitBtn〕和加速按钮〔TSpeedButton);而列表类组件则适用于在应用程序中提供多个选项供选择通过本章的学习,读者应了解这些常用的组件的基本属性、方法和事件,并能使用这些组件来开发不同风格的应用程序界面习题习题1.按照组件在运行期间是否可见,Delphi中的组件可以分为哪两大类型?各有何特点?2.TEdit组件和TMemo组件在使用上有何不同?3.TRadioButton组件和TCheckBox组件的用途分别是什么?在使用场合上有何区别?4.TListBox组件和TComboBox组件的用途有何不同?5.利用常用组件设计一个具有加、减、乘、除功能的计算器。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


