你说的对,不过英文字符不一样宽,如'w' ,'i',我认为必须算出字符宽度,跟在dos下不一样啊!

解决方案 »

  1.   

    如何得到字符的宽度呢,api?
      

  2.   

    先给你一个函数://取得字符的高度
    function CharHeight: Word;
    var
     Metrics: TTextMetric;
    begin
     GetTextMetrics(Canvas.Handle, Metrics); // Called Windows API
     Result := Metrics.tmHeight;
    end;不过我觉得没有必要用,因为我们常用的中文字体中的英文字符都是宽度相同的。你可以参照金山打字通那样的方案,使用宋体或 FixedSys 之类的,可以做到字符宽度一样。不过,你该不会让用户选择字体吧? :)