procedure TForm1.Form1Paint(Sender: TObject);
begin
   form1.Canvas.Font.Size:=56;
   form1.Canvas.TextOut(150,150,'查询错误');
end;
为什么在窗口的(150,150)位子写不出字。而下面的这段代码按了‘查询’按钮后就可以写出了,但是不能重画呀
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
   form1.Canvas.Font.Size:=56;
   form1.Canvas.TextOut(150,150,'查询错误');
end;我需要的是写出子后。程序能够保持重画

解决方案 »

  1.   

    那就用个timer来做:procedure TForm1.Timer1Timer(Sender: TObject);
    begin
       form1.Canvas.Font.Size:=56;
       form1.Canvas.TextOut(150,150,'查询错误');
    end;
      

  2.   

    procedure TForm1.FormPaint(Sender: TObject);
    begin
       form1.Canvas.Font.Size:=56;
       form1.Canvas.TextOut(150,150,'查询错误');
    end;写得出啦。。 再试
      

  3.   

    我试了好长时间了。TForm1.FormPaint(Sender: TObject);
    就是写不出那几个字
      

  4.   

    我用你第一个函数可以写出来啊
    你怎么就写不出来呢?要不你在每个函数的开始加上“form1.Repaint”看看能不能重画?