一、花絮

delphi自带的memo显示sql语句看的太累人了,今天决定美化一下。最起码要有“语法着色”、“显示行号”这2个功能。

意外发现了 SynEdit 控件。

SynEdit是一个免费的文字编辑器,支持37种程序语言语法高亮度显示,可以一次编辑多个文件

SynEdit 支持语法高亮、word-wrap、代码自动完成、模版组件、导出到 html 等格式的功能。

SynEdit 是一个纯 VCL/CLX 控件,无须任何其他运行库支持,著名的 HeidiSQL 数据库管理工具就是使用该控件开发的SQL编辑器。[] 

下载地址: 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、把消耗时间解决的问题整理出来,避免以后再消耗时间。

SynEdit(Delphi XE7)的安装和基本使用的更多相关文章

  1. Delphi XE7下如何创建一个Android模拟器调试

    利用Delphi XE7我们可以进行多种设备程序的开发,尤其是移动开发应用程序得到不断地加强.在实际的Android移动程序开发中,如果我们直接用android真机直接调试是非常不错.一是速度快,二是 ...

  2. Delphi xe7组件和控件的安装方法

    暂时我所遇到的所有控件安装方法大体与下面两种相同. 若有不同大家提出来,一起想办法解决. .dproj格式的组件安装方法: raise组件 安装详细步骤如下: 一.设置搜索路径1. 将本包中的文件连同 ...

  3. RemObjects SDK Source For Delphi XE7

    原文:http://blog.csdn.net/tht2009/article/details/39545545 1.目前官网最新版本是RemObjects SDK for Delphi and al ...

  4. Delphi XE7试用记录1

    Delphi XE7试用记录1 在网上看到XE7的一些新特征,觉得完整Unicode支持.扩展Pascal语法.更多功能的库都很吸引人,决定试试XE7. XE7官方安装程序很大,因此选择了lite版, ...

  5. Delphi XE7的安卓程序如何调用JAVA的JAR,使用JAVA的类?

    本文使用工具和全部源码下载: http://download.csdn.net/detail/sunylat/8190765 为什么我们要在Delphi XE7的安卓程序调用JAVA的JAR,使用JA ...

  6. Delphi XE7调用Java Class,JAR

    Delphi XE5,XE6需要用户手工编译并将Classes.Dex加入到包中,不过Delphi XE7可以省掉这些工作了. 如何在XE7中调用Java,具体步骤如下: 1.将jar文件添加到XE7 ...

  7. [转载]: delphi中XLSReadWrite控件的使用(2)---delphi XE下安装

    一.下载 官方下载网址: http://www.axolot.com/components/download.htm 从这里可以下载到从Delphi5到DelphiXE全部支持的版本. 二.软件安装 ...

  8. delphi XE7 中的消息

    在delphi XE7的程序开发中,消息机制保证进程间的通信. 在程序中,消息来自: 1)系统: 通知你的程序用户输入,涂画以及其他的系统范围的事件: 2)你的程序:不同的程序部分之间的通信信息.   ...

  9. 关于delphi XE7中的动态数组和并行编程(第一部分)

    本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...

随机推荐

  1. SQL ROW_NUMBER() 分页使用示例

    ALTER PROC [dbo].[TestProPage] , AS BEGIN SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY IndexID ...

  2. mongodb启动不了:提示错误信息为 child process failed, exited with error number 100

    [启动mongo 副本集错误提示]: [原因分析说明]: 查询很多资料得知由于上次使用了暴力关闭系统或者DB,导致数据文件锁住. [解决办法]: 1.  在 mongo.conf 文件添加一下属性值  ...

  3. Python爬虫--Urllib库

    Urllib库 Urllib是python内置的HTTP请求库,包括以下模块:urllib.request (请求模块).urllib.error( 异常处理模块).urllib.parse (url ...

  4. 【题解】Sumdiv

    [题解]Sumdiv 传送门 根据组合的乘法原理,一个数的所有约数和 \[ sum=\prod_{i=1} \Sigma_j^{a_i} p_i^j \] 所以任务就变成了分解\(A\)的质因数,分解 ...

  5. [数据挖掘课程笔记]无监督学习——聚类(clustering)

    什么是聚类(clustering) 个人理解:聚类就是将大量无标签的记录,根据它们的特点把它们分成簇,最后结果应当是相同簇之间相似性要尽可能大,不同簇之间相似性要尽可能小. 聚类方法的分类如下图所示: ...

  6. touchweb手机网站图片加载方法(canvas加载和延迟加载)

    一.canvas图片加载 关于canvas加载,我的方法是,将文章中所有用到图片的地方,都用canvas代替,给canvas一个data-src,里面存放img的路径,通过canvas方法渲染图片.因 ...

  7. 分享知识-快乐自己:2017IDEA破解教程

    首先 修改host文件: 文件路径:C:\Windows\System32\drivers\etc\hosts 修改:将“0.0.0.0 account.jetbrains.com”追加到hosts文 ...

  8. Spring MVC文件上传下载工具类

    import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import ...

  9. What can I yield?

    浏览器支持情况:Enabled by default in desktop Chrome 39  一句话回答这个问题是:Promise,Thunks.为什么没有Generators?因为Generat ...

  10. selenium总结

    个人对selenium的理解: 1.使用selenium操作浏览器,实际上是使用selenium框架下的webdriver启动各浏览器的驱动实现对浏览器的操作的.以下两句代码即可启动firefox浏览 ...