捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
解决ReportBuild中折行时汉字出现乱码的问题
关键字:ReportBuild 折行 汉字 乱码
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2008/3/5
发布者:dfw@83037 发布时间:2008/3/5
编辑器:DELPHI7 语  种:简体中文
分 类:打印 下载浏览:215/8797
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
修改source下的ppPlainText.pas中的以下部分,并将修改后的pas文件拷到lib目录下

procedure TppTextWrapper.WrapCharacters(const aLine: String; var aNextWord, aRemainingChars: String);
var
  lbFits: Boolean;
  liLineWidth: Integer;
  liIndex: Integer;
  lsCurrentLine: String;
  lsNextWord: String;
begin

  lsNextWord := aNextWord;
  lsCurrentLine := aLine;

  liIndex := 1;
  lbFits := True;
  aRemainingChars := '';

  while lbFits and (liIndex <= Length(lsNextWord)) do
    begin

      liLineWidth := CalcTextWidth(lsCurrentLine + lsNextWord[liIndex]);

      {there is room to print next word on current line}
      if (liLineWidth <= FWidthAvailable) then
        lsCurrentLine := lsCurrentLine + lsNextWord[liIndex]

      else
        begin
          lbFits := False;

          if (liIndex = 1) then
          begin

          if (aLine <> '') then
          begin
          aNextWord := '';

          aRemainingChars := lsNextWord;
          end

          else
          begin
          aNextWord := lsNextWord[1];

          aRemainingChars := Copy(lsNextWord, 2, Length(lsNextWord));
          end;

          end

          else
          begin
          //Modify By Xiucai 以下两行是我加的,解决乱码问题
          if Windows.IsDBCSLeadByte(Byte(lsNextWord[liIndex - 1])) then
          Dec(liIndex);
          
          aNextWord := Copy(lsNextWord, 1, liIndex - 1);

          aRemainingChars := Copy(lsNextWord, liIndex, Length(lsNextWord));
          end;

        end;

      Inc(liIndex);

    end;

end;
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论1条 当前显示最后1条评论
hbl_yuhong 2008/4/3 8:44:40
var
  lbFits: Boolean;
  liLineWidth: Integer;
  liIndex: Integer;
  lsCurrentLine: WideString;
  lsNextWord: WideString;

改成上面这样也可以。
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表