毫无疑问,Delphi是高度可视化的。这是使用Delphi进行编程的最大好处之一。当然,任何一个有用的程序中都有大量手工编写的代码。当读者开始编写应用程序的UI部分后,可能会多花些事件来学习Delphi Code Editor。Code Editor有些特性,当大家知道后,一定会喜欢的。
我们将从四个方面进行介绍:
- 基本的编辑器操作(Basic Editor Operations)
- 专用编辑器特性(Specialized editor features)
- Code Editor快捷菜单(The Code Editor context menu)
- 修改编辑器选项(Changing the editor options)
Note
Delphi Code Editor允许用户从多种键盘映射配置:Default, IDE Classic, BRIEF,Epsilon,Visual Studio, Visual Basic等中选择一种。如下图,从【Tools | Editor Options…】中的“Key Mappings”中设置。我们默认选择“Default”映射。
编辑器基本操作
对于基本的输入、删除文本、用鼠标加亮显示文本,剪贴、复制、粘贴等等,此处不再介绍了。
Delphi Code Editor是一个典型的代码编辑器,其外部特征是语法加亮显示,这使得关键字、字符串、数值常量和注释的识别一目了然。如下图:
Code Editor是一个多页面窗口,可同时打开多个编辑器窗口。每个窗口由位于编辑器窗口顶部的一个标签(Tab)代表,标签上显示文件名。要切换到某个源文件,可点击与要查看的文件相对应的标签。如果标签太多一次显示不下,会出现滚动按钮,因而可使用滚动按钮来显示全部标签。
位于Code Editor底部的状态栏显示状态信息,当前行号和光标在当前行的位置显示在状态栏的左边。如果自上次保存文件后又修改了文件,则状态栏中部会显示Modified。状态栏右部显示当前模式,要么是Insert,要么是Overwrite。如果文件是只读文件,则状态栏右部会显示“Read Only”。
编辑器窗口的左边缘有一个灰色条,叫做沟槽,它用于显示开发过程中不同阶段的图标。例如上图中,当设置一个调试器断点时,沟槽中会显示一个红点;当设置一个书签时,代表该书签的图标会出现在沟槽中。
Note
如果在选择文本或放置光标是,偶然点击了一下沟槽,该行就会设置上一个断点,再点击沟槽即可清除断点。
1、打开和保存文件(Opening and Saving Files)
在Code Editor中打开和保存文件没有任何神秘之处。但要指出的是,打开工程与打开源文件是有区别的。
当从主菜单选择【File | Open Project…】菜单项时,系统会提示输入要打开的工程文件名;当从主菜单选择【File | Open】菜单项时,可打开单个的Delphi源文件或窗体文件。实际上,可以打开任何类型的文本文件。
Note
如果打开一个包含窗体的单元文件,Delphi会在Code Editor中打开源文件,并在Form Designer中打开窗体。
也可以一次打开多个文件。在Open对话框中选择要打开的多个文件,然后点击OK就可以将所选文件都打开;所选的每个文件都将被装入,并在编辑器窗口顶部为每个打开的文件放置一个标签。
Tip
也可以用鼠标拖放来打开文件。例如,在Windows资源管理器中选择一个或多个文件,把它们拖放到Code Editor中,则它们就会在Code Editor中打开。
要保存文件,可从主菜单选择【File | Save】或【File | Save As】菜单项,也可以从键盘敲击Ctrl + S来实现。若文件以前从未保存过,则会弹出“Save As”对话框,此时可以输入文件名。
2、加亮显示正文(Highlighting Text)
尽管加亮显示时基本的操作,但是还是要介绍几条基本加亮显示记录,以便大家在Code Editor中方便使用。
要加亮显示一小块文本,可以鼠标从要加亮显示的正文中选择即可,选择后,可根据需要剪切、复制和粘贴所选正文。如下,选择了“Application.Hint”:
要加亮显示大块的代码,可先在要加亮显示的快开始处点击鼠标,然后按住键盘的Shift键,同时在块的结束位置再点击一下鼠标。如下选择“FormCreate”过程:
还可以加亮显示如下的块代码,操作方法是【Shift + Alt + 方向键】或者按住Alt键拖动鼠标选择,效果如下:
另一个有用的特性是快速选择字,要选择关键字、函数名或变量名,只需要用鼠标双击该字,然后就可以对加亮的字进行任意的编辑操作了。如下图,双击选择了“OnHint”字:
Tip
要用鼠标选取一行代码,可在该行开头单击鼠标,然后拖动鼠标到下一行的起点。
如果用键盘来选取一行代码,先按下Home键把光标移动到行的开头,然后用【Shift + 向下箭头】加亮显示该行。
键盘上有许多的快捷键用于加亮显示正文以及做其他的编辑工作。键盘快捷键的完整列表可查阅Delphi联机帮助。
Tip
有时需要缩排整块代码;有时又需要为整块代码撤销缩排。要缩排代码块,可先加亮显示要缩排的行,然后在键盘上按下【Ctrl + Shift + I】;要撤销缩排,从键盘上按下【Ctrl + Shift + U】。
Code Editor支持拖放编辑,要移动一段代码,先加亮显示它,然后把鼠标光标移到加亮显示的正文上并拖动鼠标,当光标到达要放置代码的位置时释放鼠标按键,这段代码就被移动到了新位置。复制代码与移动代码的操作差不多,只是在放下代码前按住Ctrl键盘。
3、Undo撤销(Undo)
Code Editor的Undo撤销层数实际上没有限制(缺省是32767)。通常,只能撤销最近一次保存文件后的命令;通过修改编辑器的选项,能够做到,在保存文件后还能撤销保存文件之前的命令。
总而言之,要记住一条简单规则:Undo是你的朋友。
4、查找和替换(Find and Replace)
Find和Replace在编程中使用十分频繁。可以用Find查找代码中的一小段代码或某个变量;可以用Replace来改变一个变量名或一个方法名。Find和Replace的用法不胜枚举。
Delphi Find Text和Replace Text对话框实现了比较标准的查找替换操作。要调出Find Text对话框,可以从主菜单选择【Search | Find】菜单项或按下【Ctrl + F】,如下图:
在“Text to find”字段中输入要查找的文本,点击OK键盘即可开始查找。如找到要查找的文本,文本会加亮显示。
Note
用Find Text对话框加亮显示的正文与用鼠标加亮显示的正文是不一样的。查找找到的正文是以黑色加亮显示的,而用鼠标选定的文本是以蓝色加亮显示的。如下图:
查找操作加亮显示的正文不是用于编辑,而是看起来更加方便。
从主菜单上选择【Search | Replace】菜单项或按下【Ctrl + R】来调出“Replace Text”对话框,如下图:
Delphi的“Replace Text”对话框和“File Text”对话框选项大同小异。
当要查找的正文不是一个字或变量的一部分时,使用“Whole words only”选项。例如,要用MyForm替换Form,由于其他的变量名(如TForm)可能在其中,因此要用整字查找替换。
当选中“Regular expressions”后,就可以在“Text to find”中使用特殊字符和通配符。关于“Regular Expressions”的完整说明,请查看Delphi联机帮助。
在替换正文时,选中“Prompt on replace”是最安全的。此时执行“Replace All”操作,编辑器会加亮显示每个查找到的字,并提示是否要替换它。做“Replace All”操作时容易搞错,所以要多加小心,还是要记住“Undo是你的朋友”。
5、文件中查找(Find in Files)
“Find in Files”是一个强有力的工具,用于查找多个文件中的正文。经常使用“Find in Files”到VCL源代码中去查找某个方法、变量或类。这是一个既方便又实用的工具,大家要努力学会使用这个工具。
要使用“Find in Files”,可从主菜单中选择【Search | Find in Files】菜单项,也可从键盘按【Ctrl + F】显示出“Find Text”对话框并点击“Find in Files”标签。如下图:
“Find in Files”使用的查找选项与普通的“Find”操作使用的选项相同。另外可选择的就是“Where”选项,是从一个工程全部文件中查找,还是从打开的文件中查找,还是从某个目录下(包括子目录)全部文件中查找。
当启动“Find in Files”时,在屏幕的右下角会有一个标题为“Searching”的小窗口。该窗口显示“Find in Files”操作的状态,其中包括当前正在查找的文件和匹配的次数。关闭Searching窗口即可取消查找。
所有的匹配情况都会显示在Code Editor的消息窗口中。如下:
消息窗口中显示查找到的正文所在文件的文件名、所在行的行号,所在行的内容(其中要查找的正文会以粗体显示)。要查看包含匹配文本的文件,双击消息窗中一行,Delphi会打开当前行所在文件,并定位到包含查找内容的行。
在指定“file mask”时,所有的通配符都是适用的。例如,要搜索一个目录下所有的文本文件,可在“file mask”中输入“c:\mywork\*.txt”。
“Find in Files”是必不可少的工具,可经常使用它。学会使用“Find in Files”可节省很多时间。
6、获取帮助(Getting Help)
Code Editor的最有用的特性之一就是在其中集成了Delphi帮助系统。将编辑器光标移到一个关键字、一个VCL属性或方法上,按下F1键,如果Delphi帮助文件中包含光标所在位置的正文的帮助信息的话,Windows Help就显示相应的帮助内容;若不存在,则显示一个出错信息。
当忘记了如何使用Delphi、Object Pascal或VCL的某一方面内容时,这一特性就更为有用。只要敲击F1,就能获取帮助。
以上讲解均在Delphi7环境下进行。