求一个关于synedit的用法

jixiaohai 2012-11-13 09:56:52
用的是xe2的版本。使用synedit写了个小的编辑器。请教下如何让鼠标所在行的背景色显示高亮?
...全文
339 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhr963504621 2014-07-18
  • 打赏
  • 举报
回复
SynEdit1->ActiveLineColor
jixiaohai 2012-11-18
  • 打赏
  • 举报
回复
引用 9 楼 HSFZXJY 的回复:
额。。这个应该没多大问题吧,我见过一个叫1st JavaScript Editor的编辑器,它也是这样显示,这样才能知道哪个是一行嘛。。实在不行你就得自己计算罗。。
这个效果对于写代码之类的确实是挺实用的功能。但是我现在的用途是用来写文章。中文文章是以段落来的。这样就会出现一段文章只有一行了。显然是不对的,你说的自己计算如何计算?
jixiaohai 2012-11-14
  • 打赏
  • 举报
回复
引用 5 楼 HSFZXJY 的回复:
哦那就在OnKeyDown和OnMouseDown都判断:获得行号用synedit.CaretY 1,连计算都不用!
差不多能实现了。不过闪烁的非常厉害。分还是都给你把。给个思路后续的自己搞定
hsfzxjy 2012-11-14
  • 打赏
  • 举报
回复
额。。这个应该没多大问题吧,我见过一个叫1st JavaScript Editor的编辑器,它也是这样显示,这样才能知道哪个是一行嘛。。实在不行你就得自己计算罗。。
jixiaohai 2012-11-14
  • 打赏
  • 举报
回复
引用 7 楼 HSFZXJY 的回复:
当然,要判断事件发生时行号是否和上一次相同,若不同再重画,减少刷新次数,保证不闪屏!
高亮色问题已经解决了。可是还有个问题。如果开启了自动换行。会变成多行高亮。这个问题有啥办法能解决吗?或者说有啥办法,让换行自动变为新的一行。而不是算作同一行?
hsfzxjy 2012-11-14
  • 打赏
  • 举报
回复
当然,要判断事件发生时行号是否和上一次相同,若不同再重画,减少刷新次数,保证不闪屏!
hsfzxjy 2012-11-13
  • 打赏
  • 举报
回复
哦那就在OnKeyDown和OnMouseDown都判断:获得行号用synedit.CaretY 1,连计算都不用!
jixiaohai 2012-11-13
  • 打赏
  • 举报
回复
引用 3 楼 HSFZXJY 的回复:
写OnMouseMove事件,通过坐标获得鼠标在哪行,再将该行设为高亮
onmousemove去判断那要考虑的东西可就太多了。文字行高,Y轴位置,这样判断太过频繁了。鼠标稍微动下就要判断。问题说的不是很清楚。不应该说鼠标,而应该是光标所在行,不关是鼠标所在的位置,还是通过键盘上下移动改变行的位置,光标所在行都显示高亮底色
hsfzxjy 2012-11-13
  • 打赏
  • 举报
回复
写OnMouseMove事件,通过坐标获得鼠标在哪行,再将该行设为高亮
jixiaohai 2012-11-13
  • 打赏
  • 举报
回复
引用 1 楼 HSFZXJY 的回复:
你不觉得那样很晃眼么。。
高亮显示不一定要用晃眼的颜色啊。比如非常浅的淡黄色,只是为了突出鼠标所在行。
hsfzxjy 2012-11-13
  • 打赏
  • 举报
回复
你不觉得那样很晃眼么。。
========== SynEdit Studio Readme==========谢谢使用SynEdit Studio;此控件包基于基于SynEdit加强,增加了一些第三方的SynEdit控件和自己写的控件;原SynEdit控件包开发者:Pieter Zijlstra;增强修改包作者:姚乔锋 yaoqiaofeng@sohu.com最近的版本请关注www.delphibox.com和www.delphifans.com;========== SynEdit Studio History==========修改版本 2005.05.23 01.有下载的网友说有病毒,汗...所以重新查毒压缩了下,不好意思了; 02.SynSpellReg,修正了这个单元注册时会找不到dcr文件的错误; 03.TSynEdit,修正了按END键到下一行开头等其它键类似的定位错误; 04.TSynEdit,修正了快速录入大量文本闪烁问题,使用缓冲技术和API锁定;修改版本 2005.05.20 01.TSynAutoCorrect,改正控件原先不支持中文输入的特点; 02.TSynEdit,增加一个属性ActiveLine,类属性,具体参考TSynActiveLine; 03.TSynEdit,增加一个属性LineDivider,类属性,具体参考TSynLineDivider; 04.TSynEdit,增加一个属性WordWrap,类属性,具体参考TSynWordWrap; 05.TSynEdit,增加一个属性RightEdge,类属性,具体参考TSynRightEdge; 06.TSynEdit,修改高亮当前行的方式,在自动换行的情况也只高亮一行; 07.TSynEdit,当行间距大于零时,原本文本会显示于靠上,现修改于垂直中间对齐; 08.TSynEdit,增加一个属性LineSpacing,可指定行间距; 09.TSynEdit,增加一个属性LineSpacingRule,可指定行间距类型; 10.TSynEdit,修正当控件是在一个子窗口上时,若是焦点转回到主窗口中某个控件后再转回来时会不能显示光标的BUG; 11.TSynEdit,修正当第一列显示的字符是双字节字符的第二个字节时,在高亮当前行情况下会把第一个字节显示在行号区上的BUG; 12.TSynEdit,修正了DoCaseChange,加快转换字母大小写的处理速度和精简代码,也避免出现一些双字节字符的丢失; 13.TSynEdit,修正画右边线的代码,避免有时右边线颜色显示出错; 14.TSynEdit,修正了改变属性TEXT后不能UNDO的特性; 15.TSynEditSource,新添加的自己写的控件,用于存储Synedit的属性,详细请查看单元SynEditSource; 16.TSynEditSearcher,新添加的自己写的类,用于简化Synedit搜索,详细请查看单元SynEditSearcher; 17.TSynUniSyn,新添加的修改过的第三方控件,一个通用的Highlighter,详细请查看单元SynUniHighlighter; 18.TSynSpellCheck,新添加的第三方控件,一个拼写检查控件,详细请查看单元SynSpellCheck; 19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,存储增加的自定义的控件中用到的字符串;未来期待 下一版本中我将会加入一系列的Action,以方便大家编写程序 若大家还想增加什么功能的话,请给我写信,当然不要用英文写了,英文我不是很好.赶了一夜通宵,头晕死了,终于弄好了至于详细说明一时想不到怎么写,汗...我对里面所有控件的用法也不是都很熟,至于说明格式大家说说要怎么写.
[更新] 3月10日:    1 修正了第一次起动显示帮助的错误    2 修正了添加时代码中含有单引号,添加记录出错的问题    3 修正了添加IE快捷按钮无图标的错误    4 修正了添加数据时不能自动生成文件的错误    5 添加了数据库数据成批输出到指定目录[用途]  本程序主要用于大富翁论坛离线数据整理。也可以用于任何代码的收集工作。使用统一的数据库,可以把大家收集整理的结果统一起来。使用HTML格式,整理的时候可以随时把整理的结果转换成电子书。[使用要]    对于WIN2000以上系统不需要安装其它东西,WIN98必须安装MS的MDAC2.8,可以在网上找到或者到MS的网站上去下载安装。[快捷操作]   F1 帮助窗口,  F2 代码输入窗口。  F3 设置窗口  F4 数据输出窗口  F5 起用/关闭监视剪贴板功能  ESC 退出程序[用法]  1 首先请整理并测试好代码,根据用途起一个简要的名字,最多40个字。  2 选择不同的主类和细类。  3 在代码说明里写上代码的用法说明。最多255个字。  4 从DELPHI中复制并粘贴到代码内容框里(最好可以先格式化一下代码)。在起用了监视剪贴板后,只要你选择要输入信息的控件,然后进行复制,程序会自动将代码放到相应的控件中去(监视剪切板操作不能保存,每次程序起动后必须手动起动)。  5 点击预览,可以查看生成的HTML格式数据文件,进行确认。  6 保存代码,数据将保存在程序设置的目录下的ACCESS数据库或者用户设置的数据库中。相应的HTML文件也将放在程序目录下的‘DATE’目录或者用户设置的目录中。但请注意,一定要用程序所设置的表的形式,格式不同时可能会出现错误。[设置]  1 程序设置中可以设置程序的一些快捷操作,如监视剪贴板,关联到IE文件,透明窗口和,总在最前。    2 程序设置可以更改文件保存路径和数据库存放路径。  3 由于能力有限,提供的模板不是太好看,可以自己定义模板,编辑模板时可以在右键菜单里插入不同的标识,这些标识在文件输出时蠢动自动替换为不同的标题,代码内容等。格式都是“%%标识%%”形式的。在模板文件中都可以找到。  4 自定义的模板请命名为“DFW.HTM”放在程序同目录下,也可以编辑原来的"DFW.HTM"文件,做成自己真喜爱的样式,但请注意文件名和里边的标识不能错。[添加]  对代码的分类可能混乱,那位朋友做一个更好的分类表命名为“type.ini”,程序会自动读取新的分类。可以将新的分类发给我,让我把新的分类集成到程序中,或者上传到大富翁上,供大家下载使用。用到的第三方控件有:Flatstyle2.1、SynEdit、HotKeySpy

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧