如何从下向上平滑滚动一个文本文件,AAfont自动换行有bug.

解决方案 »

  1.   

    加下面的代码试试换行
    str_num_per_line :integer;
    single_str_length:integer;
    start_x:integer;
    start_y:integer;
    current_x:integer;
    current_y:integer;
    i:integer;
    double:integer;start_x:=213;
    start_y:=63;
    double :=1;
    current_x := start_x;
    current_y := start_y;
    str := RichEdit1.Text;
    i:=1;
    while i<=length(str) do
    begin
      current_str := str[i];
      double := 1;
      if    ord(str[i])>=127 then
      begin
        double:=2;
        current_str :=str[i]+str[i+1];
        inc(i);
      end;
      inc(i);
      bmp.Canvas.TextOut(current_x, current_y, current_str);
      current_x := current_x +   single_str_length*double;
      if  (current_x +5*single_str_length)>bmp.Width then
      begin
          current_x := start_x;
          current_y := current_y + bmp.Canvas.TextHeight('a');
      end
    end