在我去年的时候我就有这个了,而且这是我第二个第三方的控件(第一个是DevExpress),这个是专门做代码编辑器的。安装方法:点我

安装成功了之后,会在Tool Palette看到两个:SynEdit, SynEdit Highlighters。
SynEdit中包含的:
SynEdit, SynMemo, DBSynEdit:主要的编辑器,用途有差别
SynMultiSyn:显示多个高亮
SynCompletionProposal:其实我也说不明白是什么名。在VB, VC++和Delphi等等按"."弹出来的那个框就是SynCompletionProposal。
还有的比如AutoComplete我就真的没用过了。
SynEdit Highlighters包含的就是一些编程语言的语法高亮了,比如cpp, pas, bas, asm, java, JScript, HTML等等。
===================================================================================================
SynEdit和SynMemo的常用属性如下:
注:标明为“-”表示还不清楚怎么用
Align, Anchors, Contrains:同一般控件。
BookmarkOptions:Bookmark相关设置
BookmarkImage:Bookmark显示的图片,留空也没关系
DrawBookmarksFirst:-
EnableKeys:允许通过快捷键添加Bookmark
GlyphsVisible:不显示Bookmark,但仍然可以跳转到指定的Bookmark
LeftMargin:Bookmark和编辑器左边缘距离
XOffset:-
BorderStyle:外边框样式
Color:文本框背景色
InsertCaret, OverwriteCaret:插入/改写状态下光标样式
ctBlock:单个字符,通常用于Overwrite模式
ctHalfBlock:半个字符
ctHorizontalLine:水平光标显示在字符底部
ctVerticalLine:垂直光标,用于Insert模式
InsertMode:插入(Insert)/改写(Overwrite)模式。
Keystrokes:包括一些常用功能,如:剪切、复制、粘贴、撤销等。可添加删除等。
MaxUndo:撤销最大值
ReadOnly:只读
RightEdge:右边缘线位置
RightEdgeColor:右边缘线颜色
WantTabs:允许使用Tab键缩进
ScrollBars:滚动条,一般不改
SelectionColor:选择文本颜色
ScrollHintColor:行数提示颜色
ScrollHintFormat:行数提示格式
shfTopLineOnly:显示范围的第一行
shfTopToBottom:同Windows 7资源管理器

SelectionMode:选择模式

smNormal:默认
smLine:整行
smColumn:指定矩形范围

TabWidth:Tab宽度,当WantTabs为True时有效

Options:
eoAltSetsColumnMode:-
eoAutoIndent:换行自动缩进
eoAutoSizeMaxScrollWidth:-
eoDisableScrollArrows:滚动条设置(待修改)
eoDragDropEditing:允许拖拽移动、复制
eoDropFiles:允许通过拖拽打开文件
eoEnhanceHomeKey、eoEnhanceEndKey:当按下Home、End键将光标移动到文字最前/后方
eoGroupUndo:分组撤销
eoHalfPageScroll:一次滚动一半
eoHideShowScrollBars:允许自动隐藏滚动条
eoKeepCaretX:-
eoNoCaret:隐藏光标
eoNoSelection:禁用选择文本
eoRightMouseMovesCursor:允许鼠标右键移动光标
eoScrollByOneLess:-
eoScrollHintFollows:允许行数提示跟随垂直滚动条
eoScrollPastEof:垂直滚动条根据行数确定
eoScrollPastEol:值为True则后面部分以空格填充,否则同普通文本框
eoShowScrollHint:显示行数提示
eoShowSpecialChars:允许显示特殊字符
eoSmartTabDelete:智能删除Tab(缩进)
eoSmartTabs:智能水平制表(缩进),当WantTabs为True时有效
eoSpecialLineDefaultFg:-
eoTabIndent:-
eoTabsToSpaces:使用空格缩进
eoTrimTrailingSpaces:自动去掉尾部空格
===================================================================================================
首先,启动Delphi,创建个VCL项目。
然后添加SynEdit或者SynMemo(其实这两个差不多),Align属性为alClient。
再添加一个高亮。比如cpp的,就添加SynCppSyn。颜色、样式(加粗,倾斜,下划线,删除线)可以自己设置。
但是这样是没有任何效果的,因为SynEdit或者SynMemo的Highlighter属性是空的。
当添加SynCppSyn或者其他的高亮之后,双击就可以了。
然后直接运行程序。
输入比如下图的代码。如果SynCppSyn1没有设置颜色的话是这个效果:
保留字是加粗的,注释是倾斜的(Delphi编辑器的风格)。
--显示代码行数
SynEdit和SynMemo有一个Gutter类,其中有一个ShowLineNumber,把这个设置为True就可以了。
除此之外:

DigitCount:显示数字的个数,默认是4。如果LeadingZeros为True是这个效果:

AutoSize:自动调整数字个数。默认是False。

Gradient:通常和GradientEndColor和GradientStartColor,GradientSteps配合使用。默认是False,如果为True是这种效果
其中GradientEndColor是clBtnFace, GradientStartColor是clWindow,颜色可以自己设置。
ZeroStart:0为第一行。默认是False,也就是第一行显示的是1。值为True会忽略LineNumberStart属性。
UseFontStyle:使用设置的字体样式,指的是Gutter里面的Font类。
LineNumberStart:以指定的数字为第一行。

--显示多个高亮

这种情况在HTML居多,因为一部分人在写HTML代码的时候把CSS层叠样式也写在HTML文件里面。如果直接用一个SynHTMLSyn,CSS层叠样式部分是不能显示出高亮的,所以这里就需要SynMultiSyn了。
SynMultiSyn的用法和其他的高亮一样,在SynEdit或者SynMemo设置Highlighter属性之外,还需要至少两个不同的高亮,比如HTML和CSS(分别是SynHTMLSyn和SynCssSyn)。
先添加SynEdit或者SynMemo,然后依次添加SynMultiSyn,SynHTMLSyn和SynCssSyn(注意和SynCsSyn区分,SynCsSyn是C#的高亮);再将SynEdit或SynMemo的Highlighter设置为SynMultiSyn1。
回到SynMultiSyn1,将DefaultHighlighter设置为SynHTMLSyn1,然后找到Schemes属性然后单击“...”,再单击“Add”。其中:
CaseSensitive:区分大小写
Highlighter:在StartExpr和EndExpr中间显示的高亮
EndExpr:作为Highlighter指定的高亮的结束部分
MarkerAttri:标记部分颜色,字体设置
SchemeName:用于区分
StartExpr:作为Highlighter指定的高亮的开始部分

把Highlighter设置为SynCssSyn1,然后设置StartExpr为“<style>”,EndExpr设置为“</style>”,然后直接运行程序,编写HTML代码,效果如下:

颜色默认设置。
如果想多个高亮也可以,一个SynMultiSyn就搞定,还是在Schemes添加,修改。
--列出成员
实现这个操作,就需要另一个控件了——SynCompletionProposal。之前我已经写了关于SynCompletionProposal的日志。
链接:http://www.cnblogs.com/Zory/p/5186677.html
在原来的基础上(HTML+CSS)添加一个SynCompletionProposal,更名为ScpHTML。然后在Columns添加一个Column,接下来设置Editor属性,设置之前的SynEdit或者SynMemo。
TriggerChars改成“<”。
EndOfTokenChr改成“<> ”。
Options属性里面的scoUseInsertList, scoUsePrettyText, scoBuiltInTimer设置为True,其他的不改。
TimerInterval改为100或更少
InsertList和ItemList分别输入填充和提示文字,然后运行程序,输入HTML代码试试。
--Keystrokes常用功能
其实在添加SynEdit或者SynMemo之后就已经设置好Keystrokes了,可以在运行时直接使用。动态创建的SynEdit或者SynMemo也可以直接使用。
一般情况下这里是不用修改的。修改很简单,在SynEdit或者SynMemo中找到Keystrokes,然后单击"...",如图:
选择要修改的一项,单击“Edit”,后面有两个Keystroke,意思是可以使用两个快捷键。
Ctrl和Alt是不可以单独使用的,上图是因为截图的时候按了Alt+PrintScreen...所以是这个结果
单击文本框然后,按组合键之后单击OK完成设置。
===================================================================================================
其实,只有上面的一些是远远不够的,还有一些比如打开,新建,保存文件、查找等等,这些就需要其他的控件或对话框来做了,比如查找对话框、打开/保存对话框等等。

【转】代码编辑器(二)-SynEdit的更多相关文章

  1. 吾八哥学Python(二):Python代码编辑器的选用

    Python开发环境配置好了,但发现自带的代码编辑器貌似用着有点不大习惯啊,所以咱们就找一个"好用的"代码编辑器吧,网上搜了一下资料,Python常用的编辑器有如下一些: 1. S ...

  2. NanUI for Winform 使用示例【第一集】——山寨个代码编辑器

    NanUI for Winform从昨天写博客发布到现在获得了和多朋友的关注,首先感谢大家的关注和支持!请看昨天本人的博文<NanUI for Winform发布,让Winform界面设计拥有无 ...

  3. 微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器

    微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器 在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 预览 ...

  4. 【转】代码编辑器(一)-TSynCompletionProposal用法

    注意,本系列均转载自http://blog.163.com/zom1995@126/ 网上有人给我一个SynEdit这个东西,因为我很喜欢自己编个代码编辑器,但要是用Delphi直接弄的,就我现在这样 ...

  5. 介绍linux下Source Insight强大代码编辑器sublime_text_3

    背景 1 一. 运行环境 1 二.安装环境配置 1 三.创建快捷方式 1 四.配置全局环境 2 五.操作界面 3 背景 在windows操作系统系统下,文本代码编辑器众多,各路英雄豪杰争相写了许多强大 ...

  6. Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)

    Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维护,根据MIT许可证发布,支持 Wind ...

  7. Github Atom开源文本代码编辑器- 由 Github 打造的下一代编程开发利器

    个人理解:Github 热度超凡的一个项目Atom,electron是整个atom的核心,对于electron可以理解成 electron =io.js + Chromium    通过 Electr ...

  8. 如何让VB6代码编辑器垂直滚动条随鼠标滚轮滚动

    VB6毕竟是很老的产品了,它的代码编辑器垂直滚动条并不能随鼠标的滚轮而滚动,这个问题会让我们在编写代码的时候觉得很不方便,不过还是有一种方法可以解决这个问题的.    先下载一个微软发布的“VB6ID ...

  9. 代码编辑器——Visual Studio Code

    一.介绍 Visual Studio Code(简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮.智能代码补全.自定义热键.括号匹配.代 ...

随机推荐

  1. python连接hiveserver2

    sudo pip install pyhs2 网上找的例子: #!/usr/bin/env python # -*- coding: utf-8 -*- # hive util with hive s ...

  2. Oracle 10046 event详解-转载

    0046事件概述Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息.这对我们分析.定位数据库性能问题是非常有用的. 10046 eve ...

  3. ARM的QT phonon 的移植

    Phonon是QT提供的一套多媒体框架,提供多媒体播放图形界面和回放的功能,QT也是通过phonon来实现跨平台的多媒体播放.应用程序不需要关心多媒体播放到底是由什么实现的(如gstreamer.xi ...

  4. C++静态代码分析工具推荐——PVS-Studio

    长假归来,最近一直没更新,节前本来就想写这篇了,一直到今天才有时间. 关于静态代码分析在维基百科上可以查到很详细的介绍:https://en.wikipedia.org/wiki/List_of_to ...

  5. Git使用手册:HTTPS和SSH方式的区别和使用

    在管理Git项目上,很多时候都是直接使用https url克隆到本地,当然也有有些人使用SSH url克隆到本地.这两种方式的主要区别在于:使用https url克隆对初学者来说会比较方便,复制htt ...

  6. dom4j操作xml对象

         // 获取Documen对象      public static Document getDocument(String path) throws Exception{           ...

  7. CSS 宝库

    Cascading Style Sheets, 层叠样式表单或者层叠样式表.简称CSS. 目的是为了表现HTML或者XML的样式. 可以做到网页内容和表现的分离.可以说,CSS是一种表现语言. h5禁 ...

  8. PZISP自动下载软件运行时出现“应用程序无法启动,因为应用程序的并行配置不正确”

    在win7下以管理员身份运行“PZISP自动下载软件”时出现“应用程序无法启动,因为应用程序的并行配置不正确”时,是因为系统里面没有一些visual c++库 想一想,反正以后也要用上VS2010的, ...

  9. jsp页面el表达式不起作用

    web.xml中2.4版本的默认导入的standerd.jar,和jstl.jar是使用el表达式的包是启动的而2.5版本的web.xml中默认是关闭的所以在2.5的所有jsp中需要启动一下用< ...

  10. poj2017

    一天两个题,凑数用的大水题啊...不解释了..羞愧ing #include <stdio.h> int main(){ int t; int i; ],b[],tot; ){ tot=; ...