Delphi练习之简单实现记事本功能

时间:2021-08-17 19:32:56

主要是使用Delphi创建一个窗口程序,实现的功能就是记事本最基本的打开和保存功能,其实是很简单就能实现的,因为原理很简单,前提是控件的属性方法要知道是哪一个,但是RAD官方帮助文档做的实在是太烂,粗略不说有的甚至都直接不写,所以中间遇到了很多问题,在此总结一下。

实现的过程就分为两部分:界面布局和Unit内编码.

界面布局,我们先按需求设计出合适的界面,下图是我设计的界面(其实就是仿记事本),具体步骤下面讲;

Delphi练习之简单实现记事本功能

如图所示,我向默认生成的 Form1窗体 中拖入了五个组件:

1)Standard中的 TMainMenu,用于创建菜单;

我们对该控件进行编辑(右键->Menu Designer)然后在弹出的窗口中设置想要的选项(具体的就是:右键->Insert,然后修改 Caption、ShortCut、Name属性),如下图:

Delphi练习之简单实现记事本功能

Delphi练习之简单实现记事本功能

注意:例如图中显示的“文件(F)”,需要将该控件的 Caption 改为“文件(&F)”,只有加了&,才能正确的显示,而且程序运行时默认快捷键是“Alt + F”(如果你将&后的字母设为A,默认快捷键就是“Alt + A”,以此类推)。当然,程序运行时字母下是不会有下划线的。

这里关于作者的属性CheckedBox属性是False,也就是没有打对勾,如图;

Delphi练习之简单实现记事本功能

 

2)Standard中的 TMemo,用于文本区域;

这里主要修改 Align(布局属性,我想让编辑区填充整个窗口,设置如图所示),BorderStyle(TMemo区域边界属性,默认是单线条的边界,我不想要边界线,设置如图所示),Font(就是 TMemo内文本字体啥的,你也可以选择不改),ScollBasrs(编辑区的滚动条,我设置的是垂直滚动条,如下图)

Delphi练习之简单实现记事本功能

Delphi练习之简单实现记事本功能

 

3)Win32中的 TStatusBar,窗体底端的状态栏;

这个是记事本底端的状态条,可以分栏,不过我没有芬兰而且在里面输入的内容是“by Ganders”(因为比较自恋),不过文本内容的排列方式是从右向左,即 BiDiMode属性 设置为 bdRightToLeft;如下图

Delphi练习之简单实现记事本功能

Delphi练习之简单实现记事本功能

Delphi练习之简单实现记事本功能

 

4)Dialogs中的 TOpenDialog,点击“打开”选项时弹出的窗体;

我们双击这个控件的时候,会弹出下图,这个控件是当我们单击菜单中的“打开”选项时调用的,它的作用只是单纯的弹出这个窗口而已;

Delphi练习之简单实现记事本功能

这里面我们要改动的地方是 Filter属性,就是文本过滤器,例如我们想要显示当前目录下的文本文档,即需要把过滤器设置为txt后缀的,如下图;

Delphi练习之简单实现记事本功能

Delphi练习之简单实现记事本功能

 

5)Dialogs中的 TSaveDialog,点击“另存为”选项时打开的窗体;

这个设置跟上面的一样(反正我写的是一样的),不过需要提醒的是:这个是我们点击“另存为”选项时弹出,而我们点击“保存”选项时,也不过是先进行判断然后决定是否调用“另存为”选项,而这个判断的原理就是确定是否保存过一次了,如果保存过一次,就直接覆盖了。

提醒:控件包括可视和不可视控件,区别就是在运行是能否看到,TMainMenu、TOpenDialog和TSaveDialog都是不可视控件(我们当然也希望它不可视)。

 

界面这部分就差不多了,然后我们要在下面填写各功能的代码了。

Unit内编码:

我先贴出各功能块之外的代码截图,后面再详解: