代码如下:
------------------------------------
  with memList do begin
    Lines.Add(sLIne);
    sLIne := '软件名称' + #9#9#9#9;
    sLIne := sLIne +'安装目录';
    Lines.Add(sLIne);
    sTemp := qry_Software.fieldbyName('name').AsString;
    while not qry_Software.Eof  do begin
      sLIne :=  sTemp;
      if length(sTemp)>=32 then
         sLIne := sLIne + #9
      else if length(sTemp)>=24 then
         sLIne := sLIne + #9#9
      else if length(sTemp)>=16 then
         sLIne := sLIne + #9#9#9
      else if length(sTemp)>=8 then
         sLIne := sLIne + #9#9#9#9
      else
         sLIne := sLIne + #9#9#9#9#9;
      sLIne := sLIne +  qry_Software.fieldbyName('directory').AsString;
      Lines.Add(sLIne);
      qry_Software.Next;
    end;
    LInes.Add('');
    LInes.Add('');
  end;
------------------------------------
相同的名称,只不过大小写不一样,就造成“安装目录”列无法对齐,但weblogic不管大小写长度值都是8,只要长度是8的整数倍都有这个问题。包括大小写,中文,我用的是Memo控件,请问有什么方法给调整过来,执行结果显示如下:软件名称 安装目录
weblogic /appserver/bea
WEBLOGIC /usr/local/apacle想要变成如下形式:
软件名称 安装目录
weblogic /appserver/bea
WEBLOGIC /usr/local/apacle

解决方案 »

  1.   


    软件名称         安装目录  
    weblogic         /appserver/bea  
    WEBLOGIC            /usr/local/apacle  
     
    想要变成如下形式:  
    软件名称         安装目录  
    weblogic         /appserver/bea  
    WEBLOGIC         /usr/local/apacle
      

  2.   

    同时 注意 widestring 我的做法是  一个固定宽度-lenb(adoquery.field..) 得到两列固定间隔的  在其它电脑上 都 显示对齐  有汉字也没事了 最好别用 tab  用普通空格 形成间隔
      

  3.   

    换成中文显示模式,这样就能对齐了
    memo1.Font.Charset:=GB2312_CHARSET;
      

  4.   

    to zzzzzllllll() :谢谢zzzzzllllll() ,按你的方法修改,英文大小写的对齐问题解决了,但是中文还在有问题,4个汉字与8个字符还是不能对齐,如:软件名称         安装目录  
    录音软件      /appserver/bea  
    WEBLOGIC         /usr/local/apacle
      

  5.   

    chinawcs() 说得没错,如果不想转换成widestring,那就不要用Tab,用空格代替,
    一个空格 = 一个英文字符 = 半个汉字