s := '    ' + RichEdit1.Lines[0] + '     '

解决方案 »

  1.   

    估计只能自己写
    function fff(source:string;needlen:integer):string;
                               需要长度//
    var
      ip,iLen:integer;
      
    begin
       iLen := length(source);
       if ilen>= needlen then result:=source;
       ip:= (needlen-ilen) div 2;
       result := StringOfChar(' ', ip)+source + StringOfChar(' ', need-ip-ile);
    end;                 
      

  2.   

    to taxi:
     不是这个意思,我是要在赋值时自动取;
     若按此法,前后的空格该取多少呢?
    若RichEdit中的内容如下:
                    部门                            !----此行居中
    人员                                            !----此行左对齐
    我要得到一个字串是:
    '               部门                            !
    人员'
     
      

  3.   

     问题是我不知道这个长度该是多少。
     不知各位大侠有没有用过Ehlib,在PrintDBGridEh中的BeforeGridText中属性设置是通过一个
    RichEdit来实现的(设计期间),在里面设定的格式如是居中,那么打出来效果就是居中的。
    其实我就是想把这种效果在运行期体现出来 。
     在一般情况下,我可以通过Printer.PageWidth-TextWidth(Str)除以2得出居中,但是
    基于ehlib,因为是封装的,看源代码也看不太明白这里是怎么实现。
     另外,请教各位,如何得到字符的宽度(Width)?
      

  4.   

    其实就是把格式保存下来的问题,我试过Stream,不过没有成功。
    应该是有办法的。
      

  5.   

    搞定了,用TStringStream可以保存格式.
    分数过几天再发吧,这几天凡是进来者都有分!
      

  6.   

    CSDN怎么了?怎么给分都给不了?