1:不使用下面的方法,那如何让 RichEdit1 外围4周有一个边(因为使用下面的方法后, RichEdit1 面积会变小)?
     RichEdit1.BorderStyle := bsSingle;
     好象 RichEdit1 上不能画,有没其他方法?2:RichEdit 和 Image 假如长和高一样,那为什么 RichEdit 输入的内容的行与行之间的间隔比 Image 上画的内容的行与行之间的间隔大?而且 Image 每行画的内容的长度也比 RichEdit 每行显示的内容的长度多一点点(比如RichEdit 输入的内容每行只能显示10个字符1,那有可能是Image 每行画的内容的长度却可以画11个字符1),怎么解决?3:那有没有这么个控件,就是输入的内容和画在 Image 里的内容显示的是一模一样的(就是 RichEdit 和 Image 在长和高一样的情况下),即行与行之间的间隔以及每行显示的内容的长度都是一样的 ,有点同步的意思 ,有这个控件请告诉我,谢谢啊 ? 

解决方案 »

  1.   

    你别再richedit上画,你在richedit的父组件上画,沿着边画一个方框
      

  2.   

    1、4周有個邊?bsSingle風格的3D效果無法滿足你?所謂的“邊”是否指線條?若是,建議使用RzRichEdit
    2、richedit的字體與image.canvas字體不同,顯示效果也就不同;
    3、解決了2,也就不會第3個這樣的問題了
      

  3.   


    2 就算字体设置一样的,那 richedit 每行之间的间隔还是大于 image 画的每行之间的间隔
      

  4.   


    1 RzRichEdit 在输入的时候每行前面总会留有空格而不能输入
      

  5.   


    1 RzRichEdit 在输入的时候每行前面总会留有空格而不能输入,看效果图
      

  6.   

      那個叫margin,很好處理,sendmessage,設置一下Rect即可
    不知你每一行每一行是如何畫的?
      

  7.   

    我是这样画的(2行):
    for i:=0 to 1 do
    begin
      Image1.Canvas.TextOut(0,i*16,copy(RichEdit1.Text,i*w+1,w));
    end;
      

  8.   

    所以,問題是你自己沒有畫得和richedit效果一樣,說細點,就是你給TextOut的Y坐標值給得不準確。
      

  9.   

    1 RzRichEdit 在输入的时候每行前面总会留有空格而不能输入
    那個叫margin,很好處理,sendmessage,設置一下Rect即可请问如何设置?
      

  10.   

    那我现在想有没有这样的控件,就是输入的时候,每行内容高度是16,这样就能和 Image1 效果一样,
    你或许问我为什么不改 Image1,那我要说的就是 Image1 显示的是正确的,就是每行的高只能是16
      

  11.   


    procedure SetRichEditMargins(aRE:TRichEdit; aLeft,aRight:word);
    var
      R:TRect;
    begin
      if Assigned(aRE) then
      begin
        SendMessage(aRE.Handle,EM_GetRect,0,longint(@R));
        R.Left:=R.Left + aLeft;
        R.Right:=R.Right - aRight;
        SendMessage(aRE.Handle,EM_SetRect,0,longint(@R));
      end;
    end;
      

  12.   

    procedure SetRichEditMargins(aRE:TRichEdit; aLeft,aRight:word);
    var
      R:TRect;
    begin
      if Assigned(aRE) then
      begin
        SendMessage(aRE.Handle,EM_GetRect,0,longint(@R));
        R.Left:=R.Left + aLeft;
        R.Right:=R.Right - aRight;
        SendMessage(aRE.Handle,EM_SetRect,0,longint(@R));
      end;
    end;
    这个是 RxRichEdit1 自带的方法吗?怎么使用?
      

  13.   

    今天刚好看到CANCAS。例子:
    http://www.moon-soft.com/program/bbs/readelite181147.htm