《Delphi程序设计》-第四章菜单、工具栏、状态栏_第1页
《Delphi程序设计》-第四章菜单、工具栏、状态栏_第2页
《Delphi程序设计》-第四章菜单、工具栏、状态栏_第3页
《Delphi程序设计》-第四章菜单、工具栏、状态栏_第4页
《Delphi程序设计》-第四章菜单、工具栏、状态栏_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目1文本编辑器项目说明我们在学习或工作了一天以后,想做个总结,以此为出发点,本项目将编写一个记事本程序来完成对文本的编辑、保存等功能,效果如图4-1。通过本项目要求学会MainMenu、ActionList的使用,能利用SaveDialog、OpenDialog对所编辑文本进行保存、打开等操作。返回下一页项目1文本编辑器项目分析1.窗体中的组件(1)菜单是应用程序用户界面最基本的元素,它往往是程序开发中的核心,因为菜单是组织应用程序各项功能的有效手段。选择组建模板“Standard”选项卡,在窗体中添加一个MainMenu组件,用于设置项目主菜单,双击窗体中已经添加的MainMenu组件或者单击MainMenu组件的Items属性就可以看到菜单编辑窗口,如图4-2所示。返回上一页下一页项目1文本编辑器(2)选择组建模板“Standard”选项卡,在窗体中添加一个Memo组件,用于本项目的文字编辑区域。(3)选择组建模板“Dialogs”选项卡,在窗体中添加一个OpenDialog组件和一个SaveDialog组件用于打开和保存文本文件。(4)选择组建模板“Standard”选项卡,在窗体中添加一个ActionList组件,该组件可看成是一个“命令”列表,用户可以用它编辑并保存操作命令。返回上一页下一页项目1文本编辑器2.项目事件(1)“文件”菜单“退出”选项的exitClick事件,功能是退出程序。(2)“文件”菜单“清空”选项的clearClick事件,功能是清空Memo中的内容。(3)“文件”菜单“打开”选项的openClick事件,功能是打开一个文本文件,显示在Memo中。这一功能要通过OpenDialog的Execute来判断,代码如下:ifopendialog1.Executethenmemo1.Lines.LoadFromFile(opendialog1.FileName);(4)“文件”菜单“保存”选项的saveClick事件,功能是保存Memo中编辑的内容。返回上一页下一页项目1文本编辑器项目实现学习支持1.OpenDialog和SaveDialog(1)OpenDialog(打开)对话框和SaveDialog(另存为)对话框分别用于选择打开文件和保存文件的文件名,然后按选中的文件名在某个组件上显示该文件,或者将某个组件上的内容写到选中的文件之中。(2)对话框的常用属性如表4-4所示。(3)调用对话框组件的Excute函数,才能在运行期看到真正的对话框。使用Excute函数的语法如下:<对话框组件名>.Excute返回上一页下一页项目1文本编辑器2.Memo(1)Memo组件用于制作多行编辑框(编辑器),通过编辑器可以输入多行的文本,也可以显示多行的文本数据。不仅如此,通过编辑器还可以装载文本文件和保存经过编辑的文本文件。(2)Memo组件的主要属性如表4-5所示。(3)Memo常用的属性用法:Text:Memo1.Text:='多行编辑器第一行'+#13#10+'多行编辑器第二行';Lines对象的CommaText属性:Memo1.Lines.CommaText:='第一行,第二行,第三行';返回上一页下一页项目1文本编辑器Lines对象的Strings属性:Memo1.Lines.Strings[0]:='第一行';Memo1.Lines.Strings[1]:='第二行';Memo1.Lines.Strings[2]:='第三行';返回上一页下一页项目1文本编辑器(4)Memo组件的常用方法。除了利用Memo组件的属性进行显示之外,Memo组件还提供了Lines对象,它是一个TStrings对象,因此,可以引用TStrings对象的方法来显示文本行、删除一个文本行或清除所有文本行。这些方法十分有效,在实际应用中经常使用,下面通过示例来进行说明。调用Lines对象的Add方法可直接在多行编辑器显示内容的最后增加一行:

Memo1.Lines.Add('多行编辑器新增加一行');通过Lines对象的Insert方法显示:

Memo1.Lines.Insert(O,'在第一行插入新行');调用Lines属性的Delete方法删除指定的显示行:

Memo1.Lines.Delete(1);//删除第二行返回上一页下一页项目1文本编辑器通过Lines属性的C1ear方法清除显示内容:Memo1.Lines.Clear返回上一页项目2文本编辑器2项目说明在上一个项目的基础上,我们添加了工具条ToolBar、状态栏StatusBar、右键菜单PopupMenu功能使文本编辑器更加完整,运行效果如图4-12所示。项目分析1.窗体设计(1)弹出式菜单设计。所谓弹出式菜单,是指当用户使用鼠标右键单击一个对象时所出现的菜单。Delphi弹出式菜单的设计与其下拉式菜单的设计极为类似。要创建弹出式菜单,只需进行下面的操作:在当前窗体中置入一个PopupMenu弹出式菜单组件,它在组件模板的“Standard”选项卡上。

返回下一页项目2文本编辑器2

鼠标左键双击,打开PopupMenu组件的编辑窗口(如图4-13)。与下拉菜单不同之处是:这个菜单编辑器没有上方的菜单栏,它呈现的形式是由一列菜单项构成的。启动弹出式菜单编辑器后,便可按设计的具体要求进行编辑工作(如图4-14)。最后,还要设置窗体Form的PopupMenu属性为PopupMenu1。(2)状态栏。状态栏通常置于窗体的底部,要制作状态栏,先要在窗体上置入组件模板“Win32”选项卡上的一个StatusBar状态栏组件。状态栏组件由若干个窗格(Panel)组成,用于动态地显示应用程序的运行状态或提示信息。返回上一页下一页项目2文本编辑器2(3)ImageList。工具栏上有许多ToolButton工具按钮,这些按钮可以用不同图标表示。另外,许多应用程序的菜单选项也包含有图标。因此,制作菜单栏和工具栏往往需要使用大量的图标。(4)工具栏设计——ToolBar组件与ToolButton按钮。Too1Bar工具栏组件,它是一个容器组件,在组件模板的“Win32”选项卡上。利用工具栏可以方便地实现对菜单命令的访问,工具栏一般由一个容器控件(ToolBar)和若干个工具按钮(ToolButton)组成。(5)Timer在组件选项卡“System”上,在本项目中用于配合StatusBar组件的Panel[1]显示系统当前日期;Panel[2]显示系统当前时间。(6)设置用户界面,设置对象属性,如表4-6~表4-9所示。窗体效果如图4-22所示。返回上一页下一页项目2文本编辑器22.本项目中需要增加的事件(1)状态栏组件的常用事件是OnHint事件,是将应用程序的提示信息显示在状态栏组件的第一个窗格之中,而应用程序的提示信息就是控件或菜单项的Hint属性内容。(2)Timer组件的OnTimer事件,该事件执行时分别在状态栏组件的第二和第三个窗格显示当前的时间和日期信息。(3)右键弹出菜单增加的窗口居中事件、字体设置事件、背景颜色事件。(4)ActionList增加的事件(如图4-23):工具栏上的按钮对应的事件要从Action属性中选择。返回上一页下一页项目2文本编辑器2学习支持1.弹出式菜单PopupMenu

所谓弹出式菜单,是指当用户使用鼠标右键单击一个对象时所出现的菜单。Delphi弹出式菜单纳设计与其下拉式菜单的设计极为类似。要创建弹出式菜单,只需进行下面的操作:(1)在当前窗体中置入一个PopupMenu弹出式菜单组件,它在组件模板的“Standard”选项卡上。(2)双击鼠标左键,打开PopupMenu组件的编辑窗口,它是由一列菜单项构成的。(3)最后,还要设置PopupMenu所在的Form窗体的PopupMenu属性。至此,弹出式菜单设计完毕。返回上一页下一页项目2文本编辑器22.工具栏组件

ToolBar工具栏组件除了由上面介绍到的功能和用途以外,还能自动维护工具栏上按钮的尺寸,当我们改变其中一个按钮的尺寸时,ToolBar工具栏组件组件将自动调整其他按钮的尺寸,以保证工具按钮的一致性。在默认情况下,工具栏上的按钮是凸起的。如果要按钮设计成平面的,只需把它的Flat属性设置为True。

ToolBar工具栏组件还有一项高级功能,就是工具栏可以自动绕回。只要把Wrapable属性设置为True,当窗体的水平尺寸小于工具栏的水平尺寸时,工具栏将绕回,即显示不下的部分自动移到下一行。返回上一页下一页项目2文本编辑器23.FontDialog对话框(1)如果用户要选择一种新字体,就要打开一个“字体”对话框。“字体”对话框是用FontDialog组件实现的。通过调用FontDialog组件的Excute执行方法可以显示一个“字体”对话框。(2)FontDialog的常用属性如表4-10所示。4.ColorDialog对话框(1)如果用户要选择一种新颜色,就要打开一个“颜色”对话框。“颜色”对话框是用ColorDialog组件实现的。通过调用ColorDialog组件的Excute执行方法可以显示一个“颜色”对话框。(2)ColorDialog的常用属性如表4-11所示。返回上一页下一页项目2文本编辑器25.状态栏(1)状态栏通常是置于窗体底部的一个长条,许多应用程序都有一个状态栏。要制作状态栏,首先要在窗体上置入一个StatusBar状态栏组件,它在组件模板的“Win32”选项卡上。状态栏用于动态地显示应用程序在运行期的状态或提示信息,例如,提示当前执行的菜单命令或按钮命令、显示当前光标的位置(光标所在的行和列)以及获得当前的日期和时间等。(2)StatusBar状态栏组件的主要属性如表4-12所示。(3)StatusBar状态栏组件的常用事件是OnHint事件。当状态栏的提示窗口将要弹出之前会触发这个事件,这样用户就有机会设置窗口的提示内容。6.ImageList(1)ImageList图像列表组件的属性如表4-13所示。返回上一页下一页项目2文本编辑器2(2)图像列表组件是提供图标的容器,只需指明所使用的图像列表及其索引,工具栏按钮或菜单项就可以使用该图标。除此之外,还可以将图像列表中的图标或其他图像显示到图像控件中。7.TimerWindows操作系统每隔一定的时间间隔,就触发一次OnTimer计时器事件。Delphi应用程序通过响应这个事件来定时做某些处理工作。Timer组件在组件模板的“System”选项卡,该组件在运行期是不可见的,因此它不具有组件的基本属性。事实上,Timer组件只有一个事件,这就是本项目用到的OnTimer事件。当建立了这个事件,系统将每隔一定的时间间隔,就自动执行该事件一次。Timer组件的属性也比较简单,只有4个属性,如表4-14所示。返回上一页项目3个性文本编辑器项目说明本项目实现的是一个带图片的文本编辑器,与前两个项目不同的是,使用RichEdit组件代替了Memo组件;展示了StatusBar的不同用法;另外,使用了OpenPictureDialog来丰富文本编辑器的界面(如图4-24所示)。返回下一页项目3个性文本编辑器项目分析1.窗体中添加的组件(1)一个主菜单MainMenu组件,在组件模板选项卡“Standard”上,如何编辑主菜单在前面的项目中已经作了详细介绍。(2)一个RichEdit组件,在组件模板选项卡“Win32”上,用于显示文件。(3)一个弹出式菜单PopupMenu组件,在组件模板选项卡“Standard”上,在本项目中添加了一个新的知识点——子菜单,添加子菜单只需要单击右键选择“CreateSubmenu”,如图4-25所示。返回上一页下一页项目3个性文本编辑器(4)一个ActionList组件,在组件模板选项卡“Standard”上,添加“NewStandardAction”中的Format所有操作,这些操作是针对RichEdit组件的字体格式设置,是可以免写代码的。(5)分别添加OpenDialog、SaveDialog、OpenPictureDialog各一个,在组件模板选项卡“Dialog”上,分别用于打开文件、保存文件、打开图片。(6)一个StatusBar组件,在组件模板选项卡“Standard”上,本项目只是用状态栏组件显示一句文本,用到SimplePanel和SimpleText属性。(7)窗体中组件的属性设置如表4-15,表4-16,表4-17所示。(8)窗体设计最终效果如图4-30所示。返回上一页下一页项目3个性文本编辑器2.项目中的事件“文件”菜单选项的事件:(1)“新建”事件,双击MainMenu菜单的“新建”选项,自动生成newfileClick事件。(2)“打开文件”事件,双击MainMenu菜单的“打开文件”选项,自动生成openfileClick事件。(3)“打开图片”事件,双击MainMenu菜单的“打开图片”选项,自动生成openimagefileClick事件。(4)“保存文件”事件,双击MainMenu菜单的“保存文件”选项,自动生成savefileClick事件。返回上一页下一页项目3个性文本编辑器项目实现学习支持RichEditRichEdit组件的作用是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论