用canvas.textout方法时,为什么只能输出最后一个调用,而前面的均不能输出

解决方案 »

  1.   

    Canvas.TextOut调用API  ExtTextOut
    ExtTextOut用当前背景色填充指定区域,这样就覆盖了以前的图像。
    按你的要求应该用API Textout
      

  2.   

    TextOut有坐标要输入:
      canvas.TextOut (100, 100,'Hello');
      Canvas.TextOut (100, 200,'Handsome');
    如果相同时, 就会被覆盖了
      

  3.   

    在TextOut之前要对输出的字体做一些设置,比如
    var LeftX ,TopY : Integer;
    Canvas.Font.Name := '宋体';
    Canvas.Font.Size := 9;//5号字
    Canvas.Font.Color:= clRed;//显示红色字,其他颜色clBlack(黑色)clBlue(兰色)等等
    LeftX := 0;
    TopY  := 10;
    Canvas.Font.TextOut(LeftX,TopY,'显示的内容111');
    TopY  := 10+Canvas.TextHeight('显示的内容222');
    Canvas.Font.TextOut(LeftX,TopY,'显示的内容222');希望对你有所帮助