我使用了一段网上提供得程序,是通过加空格方式来控制折行的,但是汉字还是没有方法处理成功,仍然会出现乱码。help!!AutoSize := false;
AutoStretch := true;
WordWrap := true;==========================
以下程序写在QRDBtext的OnPrint事件中  tm := 6;
  if (length(Value)*tm)<= TQRDBText(sender).Width then exit;  strSource := Value;
  Value :='';  //防止截断汉字。
  while true do
  begin
    iLen := 1;    while (iLen*tm) < TQRDBText(sender).Width do
    begin
      if (ord(strSource[iLen])>128) or (ord(strSource[iLen])<0) then
        iLen := ilen + 2
      else
        inc(iLen);
    end;    DEC(iLen);    strTemp := leftstr(strSource,iLen);
    //加回车。
    if (Value='') then
      Value := strTemp
    else
      Value := Value + ' ' + strTemp;    strSource := midstr(strSource,iLen + 1, Length(strSource) - iLen);
    if Length(strSource)*tm <= TQRDBText(sender).Width then
    begin
      Value := Value + ' '+ strSource;
      break;
    end;
  end;

解决方案 »

  1.   

    我使用的是delphi6.2版本。如果是汉字没有空格就不会自动折行。不知道是不是版本的问题呢?
      

  2.   

    我是直接用一個Qrmemo, 自己處理後, 寫到 qrmemo中的
      

  3.   

    使用QRMemo和QRRichedit,都会出现一个问题,就是当控件自动延伸时,延伸的空间是double上去的,那就留下了很多的空白。比如Qrmemo需要显示两行,按理说detailband的高度应该只是原来高度的2倍,但是结果却是detailband变成了原来高度的4倍!!why??help!!