你参考这段代码:同时解决了换行和乱码的问题:
procedure TCommRepForm.QRDBText3Print(sender: TObject;
var Value: String);
var x:integer;
//X值是字符串需换行的长度,一个汉字占两个字节,X值为2.
xbytetype:TMbcsByteType;
//字符属性,用来判明是汉字还是英文字母或数字.
begin
x:=66;
//预设字符串要换行的长度.可调.增加X值则增加字串的长度.
if length(value)>x then
begin
xbytetype:=bytetype(value,x);
if (xbytetype=mbLeadByte)or(xbytetype=mbsinglebyte) then
insert(#13,value,x)
else
insert(#13,value,x+1);
end;
end;
//注意,控件QRDBTEXT3的高度设为50.为可能出现的第二行
// 字串空出位置.