Delphi快速入门(五)(转)

Delphi快速入门(五):

1.3.4.2 Shape部件 

图形部件Shape在前文中我们已有了解,它可以处理多种几何形状,通过设置Pen和Brush的嵌套属性,可以设置图形边框颜色、线型及图形的风格、填充方式、贴图方式等。 

1.3.4.3 PaintBox部件 

System页上还有一个PaintBox(绘图框)部件,它在窗体上为您提供一块可供绘图的区域。这一部件需要编程实现它的功能,一个只有在运行时才有效的重要属性Canvas是完成绘图的关键。PaintBox部件不能单独存在于窗体中,必须把它放在固定的分组部件中。 

1.3.5 关系图、文件列表部件 

1.3.5.1 OutLine部件 

OutLine(略图)部件在Win 3.1页上,它适用于显示分层的数据、文本。在Delphi中,略图部件具有很宽的设置范围。它的Lines属性可以设置每一词条的文本或数据。一般一个空格相当于一个层次,如果在项目前加一个空格则表示它处于树的下一层。所以在进行Lines属性编辑的时候不能用Tab键。在编程时用LinesItems属性来访问略图的名称、索引及完整的路径名。OutLineStyle属性用来配置显示时关系图的风格,您可以选定用旁边有图标的缩进方式,也可以选择连线方式。 

1.3.5.2 目录访问部件 

Delphi为您提供了强大的文件目录访问部件。您可以针对具体的用途设计自定义的文件对话框。在部件选项板上选中System页,您将发现这些部件,它们是文件列表框FileListBox、目录列表框DirectoryListBox、驱动器下拉式列表框DriveComboBox和过滤式下拉列表框FilterComboBox部件。

文件列表框部件FileListBox显示当前目录中的文件,缺省的设置是显示所有文件。通过改变Mask属性来设置过滤器,可以适用DOS的标准通配方式,选择要显示的文件名。当指定多个过滤器时,之间用“;”隔开。

目录列表框部件DirectoryListBox显示当前驱动器内的目录,并且允许用户在程序执行时切换目录。Column属性决定目录在窗口中用多少列进行显示,当窗体空间不够时,用几列进行显示将有助于全面地显示目录信息。在Delphi中,当窗口空间显示不下全部信息时,将自动加上滚行条,以方便用户的操作。

驱动器下拉式列表框部件DriveComboBox显示当前所在的驱动器,并且在执行时允许用户在驱动器之间切换。作为程序员在应用这一部件时,应考虑当用户选择到不存在的驱动器时,进行容错、提示处理。

FilterComboBox(过滤式下拉文件列表框)部件显示当前文件过滤器类型,例如*.*,*.pas等。在执行时允许用户在下拉列表中选择要显示的文件类型。对Filter属性进行初始化,就会得到下拉式列表。

除了以上的四个部件外,在Sample页上,Delphi还提供了一个目录略图部件DirectoryOutline。它将当前磁盘中的目录结构显示成一个多层次的略图,也允许用户在运行时进行目录的层次显示切换。 

1.3.6 滚动部件 

1.3.6.1 ScrollBar部件 

ScrollBar(滚行条)是在Windows应用程序中常见的结构,在Delphi中多数部件有自己的是否加入滚行条的属性ScrollBar,但一个独立的滚行条部件仍是很有意义的。它在部件选项板的Standard页,提供一种可以改变菜单或是画面中可见部分的工具,可以以一定的增量在一定范围内滚动。Position属性是个整形值,如果需要以动态的方式显示滚行条,可以在程序中通过操作这一属性来实现。 

1.3.6.2 ScrollBox部件 

ScrollBox(滚动框)部件是加上了水平、垂直滚行条的群组框部件,它在Additional页上,用作在窗体中提供一个可以多方向滚行的工具。如果您只想显示较大幅面的一个部分,并允许您的用户对其进行滚行操作,ScrollBar将是理想的选择。您可以先在全幅面的滚动框中进行全面设计,然后适当地缩小外框,两个方向的滚行条将自动显示。它的Position属性是集成在HorzScrollBarVertScrollBar两个集属性下的,编程时,可以选定这两个属性进行操作。 

1.3.6.3 几个进度显示部件 

SystemSampleWin 95OCX等页上,Delphi还为用户提供了几个部件,完成显示进度,增量等操作。部件Gauge可以显示成长条状的或饼状的进度指示仪表。例如在安装软件时,可以编程让这一部件显示目前安装的百分比。

  微调按钮部件SpinButton含有指示向上、向下的两个按钮,它可以用来调节数值,使被控制的值按一定的增量单位,由用户操作递增或递减。SpinEdit是微调按钮和编辑框的结合,它在编辑区域显示了数值,又在右侧设了微调按钮,使得用户选择调节按钮或改变数值的方式,来调整数据的值,并返回Value属性。

  微调编辑框

其它的此类部件,因篇幅限制,此处不做赘述。具体部件的信息,按照名称在在线帮助中查询其方法、域及应用实例,可以得到详细应用资料。 

1.3.7 网格、表格部件 

Additional页中,还有字符串表格部件StringGrid,绘图表格部件DrawGrid等。它们可以用来模拟按网格排列的事物,如成排的按键、操纵钮、字符串等。属性RowCount和ColCount设置了在网格中显示的行列的数目,设置FixedCols和FixedRows的值,可以固定一些行列避免运行时被用户改变。Options集属性含有字符串表格部件的显示方式、操作方式等,可以查阅帮助获得详细的信息,此处不再一一表述。

图形表格部件DrawGrid使得用户可以用表格的方式显示非文本的数据,它的应用面比字符串表格部件更为广泛,可以把图片和文本一起放在网格中。

颜色网格部件ColorGridSample页上,它提供控制前景色和背景色的界面,通过属性ForeGroundColor和BackGroundColor可以访问到,也可以通过程序,把得到的颜色赋值给其它对象的颜色属性。

Sample页的日历部件Calendar也是用表格的方式表现的,它提供了一个简单的以月份为库单元的日历表格,通过设定Year和Month的值,可以得到相对应的月份的日历。 

1.3.8 多媒体(MultiMedia)和OLE部件 

媒体播放器部件MediaPlayerOLE部件可以在System页上找到。媒体播放器部件在处理多媒体文件时很有用。它显示一个VCR风格的控制面板,让您记录或播放多媒体的图像、声音文件。您可以通过属性的设定来控制部件上的各个按钮,如改变显示颜色、增减按钮数目等。改变一下ColoredButtons、EnabledButtonsVisableButtons的各个子属性值,您就不难发现它们控制的显示效果。具体的应用已经超过本简介的目的,请参阅帮助以及后文的详细介绍。

OLE客户端部件OLEContainer在窗体中创建一个OLE用户区域,用于与Delphi外部的某个对象进行接口。若对外部的Paradox表格、Word文件、扩展页等进行操作,则对象本身的应用程序必须支持OLE操作。Delphi提供了支持OLE应用的对象清单,单击ObjClass属性的省略按钮,就会显示出来。具体的应用,请查阅帮助或阅读后文的详细阐述。 

以上,我们介绍了Delphi的基本可视部件。读者可能会发现,在Stardrad页最前面的两个部件MainMenuPopupMenu还没有提及。因为这是建立菜单的重要、基本操作,我们将在下一节中做详细的介绍。另外,在下文中,我们还将介绍比较重要的不可视部件。至于数据库部件、动态数据交换DDE部件等,因为在后面章节中有详尽的用法介绍,此处不赘述。 

1.4 使用非可视部件 

上一节介绍的各种部件,在设计和运行时的形式是一样的。本节所介绍的部件,在运行时被隐蔽地嵌入到窗口中,它们本身并不做任何事情,必须被用户的程序所支持才能发生作用。因为部件的设计形状和运行状态并不相关,所以,这种部件在设计窗体中的位置无关紧要,可以放在窗体上不影响其它可视部件的任何位置。这种部件,称之为非可视化部件。

首先,介绍在Standard页上的重要部件主菜单MainMenu和弹出式菜单PopupMenu的详细用法。 

1.4.1 使用菜单部件 

菜单部件含有内置的交互设计器。在设计菜单时,可以用菜单设计器MenuDesigner进行工作。

应用程序的菜单有两种形式:MainMenu是一般的Windows用户界面必须的部件,它显示在固定的位置,一般用键盘和鼠标左键来激活菜单的功能项;PopupMenu是弹出式菜单,例如,我们前文的小例程在对齐部件时用到的Delphi菜单,就是弹出式的。一般以鼠标的右键或其它快捷键来激活菜单;菜单的位置是在屏幕上“浮动”的,根据鼠标的当前位置决定。

以下,我们将MainMenuPopupMenu统称为菜单。 

1.4.1.1 进入菜单设计器MenuDesigner 

创建菜单时,首先要在窗体中放置一个菜单对象。然后调入MenuDesigner进行菜单的详细设定。用两种方式可以进入MenuDesigner:选中菜单部件,点动属性中Items省略按钮;或在菜单部件上双击左键,就会出现MenuDesigner

1.4.1.2 创建菜单的各个项目 

进入Menu Designer,会发现在菜单的第一项位置上有加亮显示。输入顶层菜单项(实际上是在设定顶层菜单项的Caption属性)并回车。一项菜单条设置完后,加亮显示的位置被移至下拉菜单的下一项,同时,主菜单顶层上会出现虚线框,指示出下一个顶层菜单项的位置。要包含一个隔离条,可以键入短划横“-”即减号并回车。逐步输入菜单的各项,用鼠标左键切换到下一个顶层菜单,直到菜单完成。 

1.4.1.3 设定加速键和热键 

您可以设定加速键,与前文的例程相同,只需在输入时,将“&”放到需要指定为加速键的字母前面,该字母将被用下划线显示,运行时,按“Alt+加速键字母”可以激活该菜单条。设定热键也是很方便的,只需在ObjectInspector中该菜单条的ShortCut属性值段的下拉菜单中,为它选定一个热键组合即可。在运行时,通过“Ctrl+热键字母”来激活菜单条。加速键和热键并不矛盾,您可以同时指定它们。 

1.4.1.4 使用Menu Designer的弹出式菜单 

Menu Designer中还有一个弹出式菜单,它提供了高频菜单创建命令,并可以对模板选项进行快速访问。在菜单设计器窗口中单击右键,或将光标停在菜单设计器上,按Alt-F10,可以调出Menu Designer的弹出式菜单。使用Menu Designer的弹出式菜单可以向菜单增加菜单项、删除菜单项等操作,还可以对标准主菜单模板进行增加、删除、插入等操作。

为菜单编制功能,可以双击菜单条,或在特定菜单条的Events页上,双击它响应的事件的值段,Delphi将回到代码编辑器,光标停在事件对应的事件处理过程中,您可以为菜单编制实现任务的代码。

如果您已经为Speed Bar上的加速按钮编制了事件处理过程,而需要把相应的菜单项连接到事件处理过程上,则只需在该菜单项的Events页的OnClick事件后,输入事件处理过程的名称即可。这样单击菜单项便和按动加速按钮便实现同样的功能。 

1.4.1.5 创建嵌套菜单 

创建嵌套菜单也是重要的手段。Delphi的嵌套菜单风格是嵌套菜单列在它上层菜单的边上,如图1.11所示: 

创建嵌套菜单,把加亮条移到它的上层菜单条上,按Ctrl+右行键,将弹出子菜单,就可以按照同上所述的方法进行创建工作了。

通过拖--放操作,可以实现菜单条的重新定位。用鼠标左键按住某一菜单条,移动到菜单的某一位置,释放左键,菜单条即得到重新定位。菜单设计器允许菜单条在顶层下移动位置,支持菜单条在嵌套菜单中移进、移出,甚至可以将菜单条在各个顶层菜单下属的菜单间移动与定位。

1.4.1.6 给菜单加提示(Hint)

在菜单中加提示是很好的习惯。它使得您的用户在运行菜单功能前,可以对菜单的任务有一个简略的了解。在菜单条任一项的值段按F1,可以查阅在线帮助,在帮助的正文中找到OnHint并查阅它的例程,将DisplayHint等方法的例程Copy到您的程序中。然后,在菜单条的Hint属性中加入提示正文,运行时当用户将鼠标移到菜单项时,在窗体的底部状态行中会出现Hint属性中的提示信息 

1.4.1.7 菜单的其它属性简介 

菜单还有其它的一些属性。Enabled属性决定菜单是否被禁用,这在编程中可以实现一定情况下不允许用户使用某项菜单。Checked属性表征了菜单项的开关情况,当Checked为True时,菜单条的前面会出现选中标志。Visible属性控制菜单隐藏与否。设置这一属性可以实现多版本的菜单。被隐藏的菜单项以及它的子菜单都是不可见的,或是不可访问的。

Popup Menu在用MenuDesigner时是完全相同的。只不过它在运行时和主菜单的激活形式有所不同:它是用鼠标的右键激活的。弹出式菜单在一定的窗口范围内激活,所以必须将窗口和弹出式菜单联系起来。在设计完PopupMenu后,须在Name属性中为它命名,然后把这个名称赋给窗体的PopupMenu属性。这样,窗口会接收右键输入,并激活弹出式对话框。 

1.4.2 使用计时器部件Timer 

System页上,还有一个(Timer计时器)部件,它能够有规律地触发OnTimer事件,发送信息给应用程序。它是编制应用程序时最为重要的部件之一。 

1.4.2.1 Timer的重要属性 

Enabled属性表示了计时器打开还是关闭;用Interval属性设置两个OnTimer事件间的间隔,单位是毫秒,也即千分之一秒。将间隔置为0相当于关闭计时器,Interval的最大允许值是32767,也即32.767秒。 

1.4.2.2 使用Timer对程序进行控制 

计时器是独立的对象,在启动与Windows无关的逻辑和应用事件时极其有用。如:用计时器可以模拟时钟或计时器,可视地显示经过的时间;可以用作系统延时,Delphi提示信息出现只需在该区域停顿几秒,就是Timer应用的一个例子;可以检查系统环境、事件,根据结果进行响应;也可以在窗口中闪烁一段正文或图像,提示某种操作或处理正在进行等等。

在窗体中放置一个计时器Timer部件,将它的Interval属性置为100(每隔10毫秒触发一次),双击部件进入代码编辑器,在它的事件中加入这样一句程序: 

MessageBeep(0); 

运行它,会有规律地发出“叮”声。它给您一个应用Timer部件的直观印象。

尽管Delphi的计时器每秒可以产生1000次激发,在编程中还必须注意程序对计时器激发的响应。如果程序处理OnTimer事件的时间超过Interval的设定值,就可能错过事件,因为当下一次激发到来时,系统正忙于处理上一事件,则这次激发就会被忽略。同时要注意其它的Windows应用程序是否会影响计时器的触发。如果后台正运行着一个占用处理器的程序,就可能会导致Timer的触发不准确,从而使前台程序运行出现错误。 

1.4.3 使用公用对话框部件 

Delphi为您在Dialogs页上提供了几个标准对话框,它们是文件打开OpenDialog;文件保存SaveDialog;字体Fontdialog;颜色ColorDialog;打印PrintDialog;打印设置PrintsetupDialog;查找FindDialog;替换ReplaceDialog等部件。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-123275/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-123275/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DELPHI快速入门教程 DELPHI基础教程 目录   第一章 Delphi快速入门(一)   第一章 Delphi快速入门(二)   第一章 Delphi快速入门(三)   第一章 Delphi快速入门(四)   第一章 Delphi快速入门)   第二章 Delphi面向对象的编程方法(一)   第二章 Delphi面向对象的编程方法(二)   第二章 Delphi面向对象的编程方法(三)   第二章 Delphi面向对象的编程方法(四)   第三章 字符串列表及应用(一)   第三章 字符串列表及应用(二)   第四章 文本编辑器的设计(一)   第四章 文本编辑器的设计(二)   第章 Delphi图形图像编程(一)   第章 Delphi图形图像编程(二)   第六章 文件管理(一)   第六章 文件管理(二)   第六章 文件管理(三)   第七章 剪贴板和动态数据交换(一)   第七章 剪贴板和动态数据交换(二)   第八章 对象链接与嵌入(一)   第八章 对象链接与嵌入(二)   第九章 Delphi拖放编程   第十章 动态链接库编程(一)   第十章 动态链接库编程(二)   第十一章 Delphi应用程序的应用(一)   第十一章 Delphi应用程序的应用(二)   第十二章 异常处理与程序调试(一)   第十二章 异常处理与程序调试(二)   第十二章 异常处理与程序调试(三)   第十三章 Delphi开发数据库应用程序概述(一)   第十三章 Delphi开发数据库应用程序概述(二)   第十四章 简单数据库应用的创建及MASTAPP介绍(一)   第十四章 简单数据库应用的创建及MASTAPP介绍(二)   第十四章 简单数据库应用的创建及MASTAPP介绍(三)   第十章 数据访问部件的应用及编程(一)   第十章 数据访问部件的应用及编程(二)   第十章 数据访问部件的应用及编程(三)   第十六章 数据浏览部件的应用及编程(一)   第十六章 数据浏览部件的应用及编程(二)   第十七章 SQL编程(一)   第十七章 SQL编程(二)   第十八章 Delphi客户服务器应用开发(一)   第十八章 Delphi客户服务器应用开发(二)   第十八章 Delphi客户服务器应用开发(三)   第十八章 Delphi客户服务器应用开发(四)   第十九章 Delphi自定义部件开发(一)   第十九章 Delphi自定义部件开发(二)   第十九章 Delphi自定义部件开发(三)   第十九章 Delphi自定义部件开发(四)   第二十章 开发Delphi对象式数据管理功能(一)   第二十章 开发Delphi对象式数据管理功能(二)   第二十章 开发Delphi对象式数据管理功能(三)   第二十章 开发Delphi对象式数据管理功能(四)   第二十章 开发Delphi对象式数据管理功能() 源自pconline
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值