DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: qqh077
今日帖子: 0
在线用户: 4
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 sensorwu (老吴) ▲▲△△△ -
注册会员
2021/1/13 18:42:43
标题:
分享:TMS 中的TadvMemo控件完美支持中文修改后代码 浏览:1452
加入我的收藏
楼主: 大名鼎鼎的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级程序员
作者:
男 littlestone08 (littlestone08) ★☆☆☆☆ -
普通会员
2021/6/30 11:47:49
6楼:
----------------------------------------------
我和我追逐的梦,擦肩而过
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2021/7/1 1:37:34
7楼: 楼主把你的网站模板共享一下行不行,还比较好看。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 yayongm (昵  称) ★☆☆☆☆ -
盒子活跃会员
2021/7/1 8:25:24
8楼: @7楼,看了一下楼主用的是:安云建站,下面是他们家的设计:
https://anli.wezhan.cn/ProductInfoCategory?categoryId=385913&PageInfoId=0
实在想用就直接扒了吧,反正也没啥难度.关键是页面也不多.
当然,其它的网站模版也有很多,也可以去看看.
或者参考参考我的:
http://www.moonserver.cn
----------------------------------------------
弱小和无知不是生存的障碍,傲慢才是!
作者:
男 gong123456 (DELPHI先生) ★☆☆☆☆ -
普通会员
2021/7/1 8:51:46
9楼: 厉害厉害厉害
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2021/7/1 12:16:40
10楼: 用开源的SynEdit不香嘛?
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 lovezyp (小焱~) ★☆☆☆☆ -
盒子活跃会员
2021/9/23 14:33:26
11楼: 感谢,之前也有这个问题,放弃了。。。
----------------------------------------------
我爱Delphi,永远的Delphi,哪怕Delphi淘汰了,出局了,被世人淡忘了我也爱,除非我死了否则就是爱Delphi
作者:
男 142857 (142857) ★☆☆☆☆ -
盒子活跃会员
2021/9/23 14:48:48
12楼: 感谢,由于advmemo中文的原因,用plusmemo
----------------------------------------------
dddddd
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2021/9/24 15:05:18
13楼: SynEdit,开源,极强,美中不足的是换行有点不完美,其它都很棒。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行77.14844毫秒 RSS