我用QR作打印,已将QRDBtext的AutoSize设为False,WordWrap也设为True了,但打印出来的
内容还是不自动换行是什么原因?谢谢!(Win98+Delphi6)
内容还是不自动换行是什么原因?谢谢!(Win98+Delphi6)
解决方案 »
- 如何在delphi中写等待5分钟的代码
- 我遇到的一个问题,解决立即给分!
- 急急急!!!一个奇怪的问题,大家帮忙看看这个地方怎么错了???
- 键盘上下箭头在dblookupcombobox中上下移动时会触发什么事件?
- 有到日本工作的程序员吗
- ★★★★★美国Borland公司各主要开发工具补丁的官方下载地址。★★★★★
- 字符串加密
- DBExpress TSQLStoredProc 问题
- 我想做一个收入统计系统,其中有一基表有145项字段,有没有更为简单的统计方法--高分求解
- 数据库的问题,急
- 请帮帮我啊,在anywhere6.0中使用中文乱码的问题.
- 如何用D6自带的VCL打印dbgrid中的内容??
quickreport不认识中文,所以不支持中文的自动换行
使用
procedure AddWord(aWord : string);
{$ifdef ver100}
var
S: string;
{$endif}
begin
if aLineWidth(NewLine + aWord) > Width then
begin
if NewLine = '' then
begin
{$ifdef ver100}
if SysLocale.FarEast then
begin
while true do
begin
if (aWord[1] in LeadBytes) and (Length(aWord) > 1) then
S := copy(aWord, 1, 2)
else
S := copy(aWord, 1, 1); if aLineWidth(NewLine + S) < Width then
begin
NewLine := NewLine + S;
Delete(aWord, 1, Length(S));
end
else
Break;
end;
end
else
while aLineWidth(NewLine + copy(aWord, 1, 1)) < Width do
begin
NewLine := NewLine + copy(aWord, 1, 1);
Delete(aWord, 1, 1);
end;
{$else}
while aLineWidth(NewLine + copy(aWord, 1, 1)) < Width do
begin
NewLine := NewLine + copy(aWord, 1, 1);
Delete(aWord, 1, 1);
end;
{$endif}
aWord := '';
end;
FlushLine;
if aLineWidth(aWord) > Width then
begin
if NewLine = '' then
begin
if Width = 0 then
aWord := ''
else
while aLineWidth(aWord) > Width do
{$ifdef ver100}
if ByteType(aWord, Length(aWord)) = mbTrailByte then
Delete(aWord, Length(aWord)-1, 2)
else
{$endif}
Delete(aWord, Length(aWord), 1);
end;
NewLine := aWord;
FlushLine;
aWord := '';
end;
if not WordWrap then
begin
aWord := '';
LineFinished := true;
end;
end;
NewLine := NewLine + aWord;
end;替换掉quickreport里面的相应过程,然后编译