delphi(第一、三、九、十)可视化编程讲稿

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第第三三章章DDeellpphhii的的窗窗体体与与组组件件教学要求:掌握窗体、编辑类组件、按钮类控件、列表类控件、分组类组件、时钟组件、菜单组件、工具栏组件和工具按钮、多选项卡的的属性、方法与事件,学会使用这些组件设计应用程序的界面。掌握ShowMessage、ShowMessageFmt、MassageDlg、MassageDlgPos、InputBox、InputQuery对话框函数与对话框过程的特点,并能熟练应用。熟悉公共对话框控件组件的属性,方法、事件及应用。掌握创建新窗体的两种不同的方法及其应用。掌握windows的模式与非模式窗体的概念及应用方法。掌握焦点的含义,与焦点相关的属性,应用焦点设计程序的方法。了解CreateMessageDialog函数的定义与用法、speedbutton和文件有关的控件的属性、方法与事件。2从本章开始,将介绍Delphi编程的一些基本方法。通过这一部分的学习,可以了解开发Windows环境下应用程序的一些关键技术,并可以方便、快捷地开发一般的应用程序。为了简化编程工作,Delphi提供了许多功能强大的函数和类。其中很重要的一部分就是组件类。本章将重点介绍常见组件及其编程应用。现在深入普及的Windows操作系统中,方便快捷的人机交互界面主要是通过窗体和对话框实现的。在Delphi中,这些窗体和对话框就是程序设计阶段的窗体,Delphi的可视化设计工作就是在窗体中进行的。通常,窗体中会有文字输入、滚动条、复选框、单选框、按钮等一系列组件,通过这些直观易懂的组件,可以方便的实现多种多样的功能。在Delphi中,这些运行期间出现在窗体和对话框中的组件称为可视组件。在窗体中,还可以放置一些运行期间非可视的组件,对应其它的TComponent子类。这些不可视组件集中地实现了一些特殊的功能。比如,时钟控制等功能。TComponent组件类,所有的组件都是由这个类派生来的。TControl子类(可视组件)可分为两类:窗体组件和图形组件。窗体组件对应TWinControl子类,是基于系统窗体的可视组件,具有窗体句柄,可作为输入焦点或含有其它组件,例如TEdit组件、TPanel组件。图形组件对应TGraphicControl子类,没有窗体句柄,不可作为输入焦点,也不能含有其它组件,例如Label组件。图形组件比窗体组件使用的资源少,尤其在组件数量比较多的情况下最好使用图形组件。组件组的关系如图所示。窗体和组件的关系非常密切。窗体就像一个容器,其中包容了可视组件和非可视组件。窗体和组件之间除了具有上述的不同点之外,还具有一些相同点。例如,从面向对象编程的角度来看,所有组件都是TComponent类派生类的一个对象。窗体类(TForm)也是从TComponent类派生的,所以可以将窗体看成一个特殊的组件。有些组件也具有窗体的“容器”属性,也就是在这些组件中可以放置其它组件,通常这些组件称为容器组件。例如Tpanel组件就是一个容器组件,可以在Tpanel组件中放置其他组件。Delphi中的所有组件是在可视组件库(VisualComponentLibrary,缩写为VCL)中封装的。可视组件库是Delphi中非常重要的一部分,不仅封装了所有组件对应的类,还封装了一些通用的类。所有的这些类都是由一个基类派生出来的,也就是TObject类。了解可视组件库对于学习组件、使用Delphi很有帮助。3Delphi中的主要组件栏Standard标准Windows组件、框架、菜单等Additional一些专用的Windows组件Win3232位Windows系统中的公用组件System进行系统操作的组件(包括定时器、多媒体和DDE等)DataAccess操作数据库的组件,如访问数据库、表格、查询和报表等DataControls进行数据库控制的组件BDEBORLAND访问数据库的组件ADO通过ActiveXDataObjects访问数据库的组件InterBase提供与InterBase直接联接的组件MIDAS开发多层数据库应用程序的组件InternetExpress开发InternetExpress应用程序(Web服务器应用程序和客户端多层数据库应用程序)的组件Internet开发Web服务的应用程序FastNet提供Internet操作的一些组件DecisionCube为应用程序提供多维数据分析的组件DialogsWindows通用对话框组件Win3.1提供与Windows3.1兼容的一些组件Samples一些定制组件的例子Servers通用COM服务器组件DELPHI组件常见属性及说明属性说明Align设置组件对齐(相对于其父容器)Borderstyle设置组件边框形状Caption设置组件标题Ctl3d设置组件边框是否为3D模式,若BORDERSTYLE设置为BSNONE则此属性无效Color设定组件背景颜色Cursor设定鼠标经过组件时光标所显示的形状Enabled设定组件是否能使用,当设为FALSE时组件会呈灰色Font设定组件内文字的字型、字体大小、颜色等Height设定组件高度Helpcontent用来为帮助说明文件中的索引值建立关联Left设定组件与父组件左边框间的距离Popupmenu设定鼠标右键(弹出式)快捷菜单Taborder设定组件在按下TAB键后焦点(FOCUS)移动的顺序Tabstop若设为FALSE,则按TAB键后焦点并不会在此组件上停留4Top设定组件与父组件上边框间的距离Visible设定组件是否可见,此属性只在执行时起作用Width设定组件显示宽度DELPHI常见事件及说明事件说明Onchange当组件有所改变时触发的事件Onclick当在此组件上按下鼠标左键时触发的事件Ondblclick当在此组件上双击鼠标左键时触发的事件Onenter当焦点进入此组件时触发的事件Onexit当切换到其它组件使该组件失去焦点时触发的事件,但当切换到另一窗体或另一应用程序时此事件不会触发Onkeydown当在拥有焦点的组件上按下某个键时触发的事件,按键包括所有的英文、数字键、方向键、功能键等Onkeypress当在拥有焦点的组件上按下某个键时触发的事件,但按键只包括所有的英文、数字键、TAB、BACKSPACE、ENTER、ESCOnkeyup当使用者放开键盘上的按键时触发的事件,按键看ONKEYDOWNOnmousedown当鼠标键在某个组件按下时触发的事件(其参数包括哪个鼠标键被按下、是否有特殊键(CTRL、ALT、SHIFT)被按下以及鼠标当前的坐标)Onmousemove当鼠标在组件内移动时触发的事件Onmouseup当鼠标键在组件上方放开时所触发的事件Onpaint在组件需要被重画时触发的事件,此时可进行自定义画法1.6窗体介绍窗体是编写Delphi程序的工作底稿区,凡是与用户进行交互的程序都得使用窗体来设计用户界面。在程序运行时,窗体实际上就是标准的应用程序主窗口、对话框及多文档界面的主窗口。根据不同的窗体类型,Windows环境中的应用程序可以分为下面的三类:单文档界面(SDI)应用程序:这种应用程序同时只能打开一个文档。例如Windows系统附件中的“画图”程序,只能同时编辑一个图像文件。多文档界面(MDI)应用程序:一般这种应用程序具有一个父窗体和多个子窗体,可以同时打开多个文档,分别在多个子窗体中显示。例如常用的word软件,可以同时编辑多个文档。对话框应用程序:这种应用程序的主界面基于一个对话框类型的窗体。例如Windows系统附件中的“磁盘扫描”程序。此外,有些应用程序在运行期间可以总是显示在桌面的最前端,例如在Windows中按下系统热键Ctrl+Alt+Del,激活的关闭程序窗体会一直显示在其它应用程序的窗体之上,除非退出该程序。窗体由标题栏、工作区和边界组成。1.6.1窗体的属性窗体的属性是与其外观密切相关的。对于组件的属性除必要进行设定的外,一般使用它的默认值。51.窗体的位置与大小窗体的位置与大小是由属性Left、Top、Width、Height、ClientWidth、ClientHeight、Position、Align来确定的。一般来说前四个属性可以定义控件在它们所在的容器组件中的物理位置和大小,在Delphi中的可见组件都有这四个属性,而不可见组件没有这些属性。Heigth属性和Width属性分别指定窗体的高度和窗体的宽度窗体的左上角相对于父容器(屏幕)的坐标:Top属性和Left属性Align属性用来设定窗体相对与父容器(屏幕)的对齐方式,该属性为枚举类型,取值如下取值含义alBotton窗体位于屏幕的下方,宽度为整个屏幕宽(Width属性失效),高度为Heigth属性值alClient窗体占据屏幕的中部,Width与Height属性失效alLeft窗体位于屏幕的左方,宽度为Width属性值,高度为整个屏幕(Heigth属性失效)alNoneWidth与Height属性有效,以及其他属性有效alRight窗体位于屏幕的右方,宽度为Width属性值,高度为整个屏幕(Heigth属性失效)alTop窗体位于屏幕的上方,宽度为整个屏幕宽(Width属性失效),高度为Heigth属性值Position属性:在应用程序运行阶段,确定窗口在屏幕上的位置。只有当Align属性为alNone时才有效,属性为枚举类型,取值如下:取值含义poDesigned窗体运行时显示的位置和大小与设计相同poDefault窗体每次显示时,与上次比较,往右下角移动了一些位置;窗体的高度和宽度由Windows决定poDefaultPosOnly窗体以设计期间的大小显示,窗体显示的位置较上次向右下角移动了一些。如果窗体以设计时的大小不可以在屏幕上完全显示,就移动到屏幕的左上角显示。poDefaultSizeOnly窗体以设计期间的位置显示,窗体的大小由Windows决定poScreenCenter窗口尺寸由窗体的Height和Width属性参数确定,但是窗口位于屏幕的中央poDesktopCenter窗体以设计期间的大小显示;窗体显示的位置总在屏幕的中间。2.窗体的名称与标题Caption属性确定了窗体的标题,当窗体最小化后,Caption属性值为图标的文本说明。通常,对于多文档界面(MDI)应用程序,当主框架窗体中的子窗体最大化显示的时候,应用程序的标题栏中显示的内容为“应用程序名-打开的文档名”;当子窗体非最大化窗体显示的时候,主框架窗体中只显示应用程序的名称,子窗体有自己的标题栏,其中显示该窗体打开的文件名。所以,当窗体的显示方式发生了改变后,应该立即改变标题栏中的内容。默认情况下Name属性与Caption属性值相同,但不能混淆两者的作用。Name属性是窗体对象的变量名,当工程中有多个窗体时,每个窗体的名称必须是唯一的,即其名称不能相同。属性Name用来标志工程中的窗体。通常,应该在系统开发的设计阶段就将整个工程中所有窗体的名称确定,然后在编程阶段根据设计文档修改窗体的Name属性。不能在程序运行期间通过代码修改Name属性。63.窗体的外观与风格与窗体的外观与样式有关的属性有:BorderIcons、BorderStyle、FormStyle、WindowStyle、HorzScrollBar和VertScrollBar属性等。FormStyle属性可以分别实现各种类型的应用程序,取值如下:取值含义FsNormal普通的窗体fsMDIChildMDI(多文档窗体)的子窗体fsMDIFormMDI(多文档窗体)的主窗体fsStayOnTop位于桌面顶层的窗体BorderIcons属性用来指定窗体标题栏上的图标,该属性为集合类型,取值如下:取值含义biSystemMenu在窗体的标题栏中显示系统菜单biMinimize在窗体的标题栏中显示最小化按钮biMaximize在窗体的标题栏中显示最大化按钮biHelp在窗体的标题栏中显示帮助按

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功