一、花絮
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、把消耗時間解決的問題整理出來,避免以后再消耗時間。