简单文本编辑器——课程设计(delphi)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1内容简介 (3)
2程序设计流程及方法 (3)
2.1 设计思路 (3)
2.2 事件响应方法 (4)
3测试结果 (5)
3.1调试方法 (5)
3.2调试过程 (5)
3.3调试结果 (6)
4分析与探讨 (8)
4.1 函数的使用 (8)
4.2 人性化设计 (9)
独立性声明 (11)
一个简单的文本编辑器
一、内容简介
为满足个人的个性需求,为此设计一个有着自己特色的文本编辑器,实现自己的特定用途。
本实例程序可以对文本进行基本的编辑;能执行基本的文件操作;同时它的状态栏具有提示信息、显示时间及当前光标位置的功能。
而重点在于熟悉Delphi中ObjectTreeView、ObjectInspector等的用法及相应的属性设置以及一些插件的使用。源代码的编写是重中之重。
开发的这个类似于“写字板”的程序,不过功能要相对简单一些。该程序的主要功能包括:
1、能执行基本的文件操作,包括新建、打开、保存一个文本文件
2、能对文本进行基本的编辑操作,包括剪切、复制、粘贴、删除、选择及查找
3、能对文本进行简单的格式化操作,包括改变文本的字体、字号、对其方式等
4、可以在状态栏显示提示信息、当前光标位置以及系统日期和时间
二、程序设计流程及方法
(一)、设计思路
基本思路:先创建一个窗体,添加菜单栏,工具栏以及状态栏,然后利用ActionManger建立一些基本指令,通过修改基本指令的属性来制作菜单和快捷键,并把它们放到菜单栏和工具栏边上。然后再添加一个ComboEx和Edit来作为字体的模式和大小的设置项,这样就建立起了一个用户界面和完成了部分功能,对于不能直接通过属性设置的功能,则通过编写时间的源代码来实现。
按照面向对象程序的设计方法,在应用程序框架下,利用VCL(Visual Compoment Library,可视化组件)进行填充,本程序将用到Delphi7提供的RichEdit、ImageList、ActionManger、ActionMainMenuBar、ActionToolBar和StatusBar组件。
在ActionManger组件中,将使用Delphi 7提供的一些标准的指令,这样可
以省去不少手工编写代码的时间。ImageList组件可以管理一系列相同尺寸的图像列表。ActionManger组件中的每一个指令都有一个ImageIndex(图像索引属性)通过为指令制定该属性值,指令变可以拥有相应的图像。这样当用指令建立菜单和工具条时,菜单和工具条上便可以显示图像,类似像Microsoft Office 风格的菜单和工具条。直接拖动ActionManger组件中的指令到菜单和指定工具条上,可以快速建立程序界面,且个菜单项和工具按钮具有相应指令的功能。
(二)事件响应方法
Windows操作系统是基于“时间驱动”的机制来运行的。事件是指外界的“激发”获状态的改变,例如,鼠标单击、移动,按下某个键等。当一个事件发生时,程序会执行相应的操作。若没有事件发生,程序会处于等待事件发生的状态。
而此程序中需要编写的事件代码如下:FileNew指令、FileOpen指令、FileSave指令、帮助文件、About指令、主窗体、ComboxEx和Edit的指令编写代码。
FileNewExecute过程中通过MessageDlg函数判断,若修改过则返回索引值6(代表Yes),清空文本,新建一个空页面。若取消则原文件保持不变。
FileSaveExecute过程中,当点击Save时,判断保存文件的后缀,再通过定义f1文件变量一写的方式打开,将所要保存的文件用writeln函数写进去。
HelpContents1Execute过程以及HelpIndexExecute过程直接调用Application.HelpCommand函数实现。其作用就是提供帮助系统。
HelpAboutExecute过程利用自带的模板并以showmodal模式显示,在上面可以加入坐着自己的个性元素。
MouseDown,KeyUp事件直接调用ShowCurpos函数显示当前的行列值,将变量取为string类型并在StatusBar1.Panels[1]上显示。
其中OnCreat事件是在程序运行后窗体显示时响应,通常使用这一事件来初始化窗体。一些属性的设置不仅可以通过ObjectInspector来设置,也可以通过代码直接设置。实例中初始化的Form完成提示信息的显示并调用GetFontNames 函数并加载字体。
三、测试结果
(一)调试方法
1、使用Project菜单中的Compile命令。该命令编译当前项目中所有修改过的文件,生成可执行的EXE文件。或使用Project菜单中的Build命令。该命令编译当前项目中的所有文件,而不管这些文件是否经过修改生成可执行的EXE 文件。而使用Run菜单中的Run命令(或按键盘上的功能键F9,或单击加速条上Run按钮),将程序编译和运行一步到位。
2、如果遇到错误,Delphi在代码编辑器的状态行报告错误,并把光标定位在包含错误代码的程序行上。改正错误后重新编译,一直到没有错误了才会生成可执行的EXE文件。
(二)调试过程
在完成了整个窗体的设计以及整体的布局之后,采用步步为营的方法,选中需要编写事件的组件,在其对应的代码编辑框输入相应代码。当编写完一个组件的响应事件代码后,及时运行与调试,若无错误,保存退出,这是就可以运行程序了。
所遇到的疑点、错误与解决方法:
1、运行后无错误,但是ToolBar上的一些图标显示不出来,检查对应图标的属性,在visible选择“True”就好了
2、运行后撤销按钮显示的是灰色,检查其Action属性为空,在Action属性下拉列表框中找对应的指令,发现没有。原来撤销指令属于Undo标准按钮。通过添加就可以得到,不需用户自行创建
3、ToolBar工具条上Separator起分割的作用,新建的Button在Action 属性上选择对应的动作,运行时将自动生效
4、RichEdit1滚动条的设置,可以通过ScrollBars属性选择,ssVertical 指设置垂直滚动条
5、若在设计界面删除控件(添加了过程),则在代码编辑器中需手动删除
6、在字体的设置中,带@的字体会使输入、显示的字体倾斜,只要选择正常显示的字体即可
7、文件的新建过程中需要对原文件进行判断,若原文件存在并修改则新建
8、在保存文件的时候,对扩展名的要求,因为是保存为文本文件,在保存