我用QR作打印,已将QRDBtext的AutoSize设为False,WordWrap也设为True了,但打印出来的
内容还是不自动换行是什么原因?谢谢!(Win98+Delphi6)

解决方案 »

  1.   

    quickreport的bug
    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里面的相应过程,然后编译
      

  2.   

    niat97222(Freeman) 你比较厉害!我们搞了很久都没有搞定。
      

  3.   

    错了,是把QrCtrls的这个过程换掉
      

  4.   

    呵呵。不过我还是要向你学习人,人家说UP能升三角,今天无聊就跑来up 了。
      

  5.   

    为什么我的机器说找不到QrCtrls.pas呀?急!!
      

  6.   

    你用的是什么版本的Delphi 呀? Delphi 7 没有源文件.
      

  7.   

    http://www.softreg.com.cn/shareware.asp?id=7495