DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: mulancc
今日帖子: 0
在线用户: 5
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 sensorwu (老吴) ▲△△△△ -
注册会员
2021/1/13 18:42:43
标题:
分享:TMS 中的TadvMemo控件完美支持中文修改后代码 浏览:316
加入我的收藏
楼主: 大名鼎鼎的TMS大家都知道,其中的TadvMemo也非常好用,可以高亮显示很多语言,例如pascal,C#,HTML,CSS,Javascript,SQL,JSON等等,但是自从该控件诞生之日起就不支持中文,输入中文时半个汉字,乱码,总之不支持,一堆问题。给TMS去邮件问了,回复说:TAdvMemo requires a monospaced font that is all.
As far as your Chinese font you want to use is monospaced (fixed width) it
should work.
There are Chinese non-monospaced fonts and these are not supported. 意思大家一看就明白了,当下还是不支持。所以没办法就自己动手尝试修改源代码,修改后感觉还不错,比较完美,所以发出来,希望对也想用的朋友有用,不再感觉是个鸡肋!

修改方法简单说下:
1. 需要先写几个函数,这样在修改的时候需要用到,我放在ADVMemo_Helper.pas文件中。
大概就使用4个函数,分别是光标位置转汉字位置,光标前是不是汉字,光标后是不是汉字,当前光标是不是在一个汉字中间等。
2. 需要修改源程序大概70多处,主要是调整计算光标位置,调整字符串长度等。

修改的TadvMemo版本是3.6.6.0,这个版本包含在TMS_Component_Pack_v9.2.4.0包中,修改的文件名称是advmemo.pas,总行数超过2万行,文件大小大概620多K。所有修改的地方有注释,其它版本的相信大家根据我的修改也可以自行完成。

下载的内容包含两个文件:
1.ADVMemo_Helper.pas(复制在和advmemo.pas文件同一个目录,advmemo.pas需要引用)
2.advmemo.pas(替换原来的文件)


经过测试完美支持!



按此在新窗口浏览图片
此帖子包含附件:sensorwu_2021113184243.rar 大小:102.0K
----------------------------------------------
喜欢编程的一个DOS级程序员
作者:
男 pigbaby (猪宝宝) ★☆☆☆☆ -
普通会员
2021/1/14 8:33:30
1楼: 謝謝分享
辛苦了
----------------------------------------------
-
作者:
男 kuei (kuei) ★☆☆☆☆ -
盒子活跃会员
2021/1/14 8:59:09
2楼: Thank you
----------------------------------------------
-
作者:
男 vkow (vkow) ▲▲▲▲▲ -
普通会员
2021/1/14 9:37:58
3楼: 牛。这是个不小的工程。

这种公司没法说。其实不是中文的问题,是所有非西语系的字符都存在的问题。
----------------------------------------------
-
作者:
男 onlykingqc (simon) ▲▲▲▲▲ -
注册会员
2021/1/14 11:24:35
4楼: 这样改的话unicode支持不会很好
而且效率堪忧。测试过几万行文字内容吗?
----------------------------------------------
-
作者:
男 sensorwu (老吴) ▲△△△△ -
注册会员
2021/1/14 14:23:15
5楼: 测试了13万行数据,是慢了,不知道如何才能提高速度。感觉似乎不修改速度也快不到那里,毕竟存储数据使用的是TStringList,同时更改一个字符也全屏刷新,感觉速度快不了,其实也就是一个简单的Script编辑器而已,大数据还是需要专业的编辑器的。
----------------------------------------------
喜欢编程的一个DOS级程序员
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行37.10938毫秒 RSS