我做了一个表盘,在1秒钟内刷新20次,可是窗体不停的闪动,请各位朋友问如何解决啊。谢谢了。程序如下:procedure TMainForm.FormCreate(Sender: TObject);
var
  i,j:integer;
begin
  Timer1.Interval := 50;
  with Image1 do
  begin
    Canvas.Pen.Width:=12;
    Canvas.Pen.Color:=clMedGray;
    Canvas.Ellipse(12,7,378,373);
    Canvas.Pen.Width:=5;
    Canvas.Pen.Color:=clBlack;
    Canvas.Ellipse(20,15,370,365);
    for i := 1 to 10 do
    begin
      Canvas.Pen.Width := 3;
      Canvas.MoveTo(195+Trunc(175*(sin(i*PI/5))),190-Trunc(175*(cos(i*PI/5))));
      Canvas.LineTo(195+Trunc(162*(sin(i*PI/5))),190-Trunc(162*(cos(i*PI/5))));
      Canvas.TextOut(183,340,'1000');
      Canvas.TextOut(183,30,'2000');      Canvas.TextOut(95,308,'1200');
      Canvas.TextOut(45,230,'1400');
      Canvas.TextOut(45,137,'1600');
      Canvas.TextOut(95,60,'1800');      Canvas.TextOut(275,60,'200');
      Canvas.TextOut(320,137,'400');
      Canvas.TextOut(320,230,'600');
      Canvas.TextOut(270,308,'800');
      for j := 0 to 9 do
      begin
        if i < 11 then
        begin                
          if j = 5 then
            Canvas.Pen.Width := 2
          else
            Canvas.Pen.Width := 1;
          Canvas.MoveTo(195+Trunc(175*(sin((10*(i-1)+j)*PI/50))),190-Trunc(175*(cos((10*(i-1)+j)*PI/50))));
          Canvas.LineTo(195+Trunc(167*(sin((10*(i-1)+j)*PI/50))),190-Trunc(167*(cos((10*(i-1)+j)*PI/50))));
        end;
      end;
    end;
  end;
end;procedure TMainForm.Timer1Timer(Sender: TObject);
var
  i: integer;
begin
  Refresh;
  Canvas.Pen.Width := 3;
  Canvas.LineTo(195+Trunc(175*(sin(Random(2000)*PI/1000))),190-Trunc(175*(cos(Random(2000)*PI/1000))));
end;