一、花絮
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编码的问题),修改很多处都还是报错。
并不想再源码上纠结太多。于是找到了一个非常完美的版
考虑到csdn下载文件比较麻烦。这里我直接传到园子里面,方便下载
二、安装
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;
效果图