使用Memo.Lines.Add(Query.fields[0].asstring+Query.fields[1].asstring+Fields[2].asstring);输出查询出的字段,怎样能保证每列字段都纵向对齐,和其它列字段保持一定距离,多谢了,

解决方案 »

  1.   

    纵向对齐?不都是靠左对齐吗,难道你要两端对齐吗,那样你就只有在canvas上 画了
      

  2.   

    就是靠做对齐,比如fields[1].assrting的值都距离Memo的左侧为30,这列的数据纵向上就对齐了
      

  3.   

    设置 memo 的字符集为等宽的字符集;将 fields[1].assrting 的值 用format设置成某相同的长度;在需要的地方插入空格符...
      

  4.   

    1. 可以用 Format 统一长度格式化字符串,不足时用空格填充,不过效果不是很好
    2. 改用 ListView 控件吧,整齐漂亮
      

  5.   

    例如:
    Memo 的 Font.Name 改为“宋体”,ScrollBars 改为 ssBothprocedure TMainFrm.Button6Click(Sender: TObject);
    var s,t,s1,t1:string;
    begin
      s:='TestString-s';
      t:='TestString-t';
      s1:='s1';
      t1:='t1';
      Memo1.Lines.Add('  '+Format('%-20s',[s])+Format('%-20s',[t]));
      Memo1.Lines.Add('  '+Format('%-20s',[s1])+Format('%-20s',[t1]));
    end;
    不知是否你要的...
      

  6.   

    Memo.Lines.Add(Query.fields[0].asstring+#9+Query.fields[1].asstring+#9+Fields[2].asstring);
      

  7.   

    谢谢,我看看 Format函数,有启发,给分