有个文本字段的数据有200左右个字,在报表里面QRDBText显示出来太长了,需要换行显示。
用什么办法解决最好?还可以用别的控件显示吗?
我用 
 const
  LineLength=30;
  copy(s, LineLength, LineLength)+#13取出来的值有时候是乱码

解决方案 »

  1.   

    看看下面代码怎么样,呵呵  if not pr_active then Exit;
      s_Str := Trim(ADOQuery1.FieldByName('query_reply').AsString);    num := 0;
        if Length(s_Str) > 95 then
        begin
          s_i := Length(s_Str) div 95;      for i := 1 to s_i do
          begin
            num := i*95+i-1;
            if (ByteType(s_Str,num) = mbTrailByte)                 //蛮竊材竊
            then  insert(' ',s_Str,num-1);        if (ByteType(s_Str,num) = mbSinglebyte)              //虫竊
            then  insert(' ',s_Str,num);        if (ByteType(s_Str,num) = mbLeadByte)           // 蛮竊材竊
            then  insert(' ',s_Str,num);              
          end;
        //  showmessage(s_Str);
        end else Exit;   if  s_Str <> Trim(ADOQuery1.FieldByName('query_reply').AsString) then
      begin
        ADOQuery1.Edit;
        ADOQuery1.FieldByName('query_reply').AsString := s_Str;
     //   ADOQuery1.Post;
      end;
      

  2.   

    我以前就遇到过这个问题,
    可以先在窗体中放一个MEMO
    然后把内容读到MEMO里
    然后在把MEMO里的内容放到一个变量里,记得每读一行都要加一个#13
    然后把这个变量传到报表里
    没了!
      

  3.   

    可是,放到memo之前不是一样要分lines吗?
     要不然memo里面不还是一行。
      

  4.   

    让 Memo 只有 竖向滚动条, Memo 即可自动断行。
      

  5.   

    memo改成自动换行,把memo的大小设定好就可以了主要是宽度
      

  6.   

    asj(最烦活稀泥) 说的不错,定义为 widestring类型就可以了,曾经也为这事烦过var s:widestring;
      

  7.   

    TQRRICHTEXT 不用试,肯定可以,不行煽我