一、花絮
delphi自带的memo显示sql语句看的太累人了,今天决定美化一下。最起码要有“语法着色”、“显示行号”这2个功能。
意外发现了 SynEdit 控件。
SynEdit是一个免费的文字编辑器,支持37种程序语言语法高亮度显示,可以一次编辑多个文件 SynEdit 支持语法高亮、word-wrap、代码自动完成、模版组件、导出到 html 等格式的功能。 SynEdit 是一个纯 VCL/CLX 控件,无须任何其他运行库支持,著名的 HeidiSQL 数据库管理工具就是使用该控件开发的SQL编辑器。[1]
下载地址: http://sourceforge.net/projects/synedit/
打开下载的文件后,发现最后更新时间是2013年。在delphi xe7下面安装频频报错。(因为utf-8编码的问题),修改很多处都还是报错。
并不想再源码上纠结太多。于是找到了一个非常完美的版本 http://download.csdn.net/detail/vowstar/8047455
感谢提供者: vowstar
考虑到csdn下载文件比较麻烦。这里我直接传到园子里面,方便下载
http://files.cnblogs.com/files/lovelp/SynEdit-DelphiXE7.rar
二、安装
1、用delphi xe7打开 SynEdit-DelphiXE7\Packages\DelphiXE7.groupproj
然后,编译、install (和其他控件安装是一样的步骤,比如fastreport)
2、添加 SynEdit-DelphiXE7\Packages\Win32\Release 到delphi的32位环境变量library path,
添加 SynEdit-DelphiXE7\Packages\Win64\Release 到delphi的64位环境变量的library path
3、安装成功后,控件区域会显示
三、使用
1、添加2个控件到窗体:
TSynMemo和TSynSQLSyn 两个控件
2、关联TSynMemo的Highlighter属性为TSynSQLSyn控件
3、设置行号 synm1.Gutter.ShowLineNumbers := true;
4、设置sql语法高亮的颜色
synsqlsyn2.CommentAttri.Foreground := clGreen; synsqlsyn2.DelimitedIdentifierAttri.Foreground :=clBlue; synsqlsyn2.FunctionAttri.Foreground :=clFuchsia; synsqlsyn2.KeyAttri.Foreground := clBlue; synsqlsyn2.StringAttri.Foreground:= clRed;
效果图
四、小结
1、合适的时候选择合适的工具。(按照以前的性格肯定会用VC来死磕)
2、对的时间做对的事情(编译不通过的时候,继续折腾可能会消耗更多的时间,从而本末倒置。因为重点是使用控件而不是编译通过)
3、把消耗时间解决的问题整理出来,避免以后再消耗时间。