博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fastreport中的对汉字的支持
阅读量:3034 次
发布时间:2019-05-15

本文共 734 字,大约阅读时间需要 2 分钟。

fastreport4.79的脚本编辑器:frxSyntaxMemo,fs_Syntaxmemo

第一个是用在TFrxAdoquery的sql编辑器中的,第二个是个独立的控件,用来支持几个常用脚本的语法加亮

存在的问题是:可以删除半个汉字,可以将光标移动至汉字中间

我现在的项目中,多处sql语句中用到汉字(select col1 as 第一列....),所以自己动手改了一下fastreport源码

原理是使用bytetype函数,判断光标位置的字符是否是汉字,bytetype的帮助如下:

Indicates whether a byte in a string is a single byte character, the first byte of a double byte character, or the second byte of a double byte character.

返回值:type TMbcsByteType = (mbSingleByte, mbLeadByte, mbTrailByte);

单字节 汉字首 汉字尾

处理源码中的几处事件就可以使这个编辑器支持汉字了

例如:

procedure TfsSyntaxMemo.DoLeft; var s: string; begin Dec(FPos.X); s := LineAt(FPos.Y - 1); if bytetype(s, FPos.X) = mbTrailByte then begin dec(Fpos.X); end; if FPos.X < 1 then FPos.X := 1; SetPos(FPos.X, FPos.Y); end;

下载:

原文:

转载地址:http://voxic.baihongyu.com/

你可能感兴趣的文章
利用广度优先遍历搜索迷宫的python源代码
查看>>
ubuntu14.04 boost 1.58.0 安裝
查看>>
漏洞基本概念
查看>>
直角三角形 (Standard IO)
查看>>
web 12
查看>>
Centos7安装Nginx
查看>>
探讨在线支付平台支付接口的设计
查看>>
【设计模式】常用设计模式总结
查看>>
.NET中的六个重要概念
查看>>
二十九、简谈设计模式
查看>>
Android NDK的总总误解
查看>>
MS office2010 ppt自动放映的设置方法
查看>>
apache开启.htaccess及.htaccess的使用方法
查看>>
js中数组的检测方法
查看>>
[译]GotW #6a: Const-Correctness, Part 1
查看>>
JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)...
查看>>
RxJava 和 RxAndroid 四(RxBinding的使用)
查看>>
Android6.0动态权限申请步骤以及需要注意的一些坑
查看>>
Android---- 获取当前应用的版本号和当前android系统的版本号
查看>>
Swift与Objective-C API的交互
查看>>