|
盒子资源分类 |
|
|
|
|
解决ReportBuild中折行时汉字出现乱码的问题 |
|
关键字:ReportBuild 折行 汉字 乱码 |
来 自:原创 |
平 台:Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:中级 |
完成时间:2008/3/5 |
发布者:dfw@83037 |
发布时间:2008/3/5 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:打印 |
下载浏览:212/7831 |
|
|
|
|
修改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; |
|
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
|
|
|