procedure TfrmMain.Timer5Timer(Sender: TObject);
begin
   if Notebook1.ActivePage='补偿' then
  begin
    Refresh;
    Image51.Canvas.Brush.Color:= clRed;
    Image51.Canvas.Ellipse(0,0,1000,700);
end;
end;
代码如上,不能显示出来
而下面的代码却可以显示出来,问题出在哪里呢?怎么解决呢?谢谢
procedure Tform1.Button1click(Sender: TObject);
begin
    Refresh;
    Image51.Canvas.Brush.Color:= clRed;
    Image51.Canvas.Ellipse(0,0,1000,700);end;

解决方案 »

  1.   

    填充方式是什么?画笔颜色和线型是什么?应该都设了。
    Timer5的interval和enable设了吗?
    Notebook1.ActivePage是否是'补偿'
      

  2.   

    估计是timer没有启动,有启动的话,试用ActivePageIndex来判断.
      

  3.   

    首先确定你得判断是否有效,
    你把 ‘补偿’是否能够正常地被负值。程序没有问题,我在本地画了,应该是你的判断有问题,timer设置多长时间,还有,在什么时候调用timer,要在show之后,不能再create的时候调用,因为还没有初始化!默认timer的Enabled是False;
    procedure TForm2.FormShow(Sender: TObject);
    begin
      Timer1.Enabled:=True;
    end;procedure TForm2.Timer1Timer(Sender: TObject);
    begin
      if Notebook1.ActivePage='Default' then
      begin
        Refresh;
        Image1.Canvas.Create;
        Image1.Canvas.Brush.Color:= clRed;
        Image1.Canvas.Ellipse(10,10,200,200);
      end;
    end;
      

  4.   

    谢谢各位,问题解决了,只要在前面加一句WITH 哪张图片 DO BEGING
    开始画就可以了