procedure TCameraForm.Timer1Timer(Sender: TObject);
var
 Can:TCanvas;
begin
  Can := TCanvas.Create;
  Can.Handle := GetDC(Cap);
  Can.Pen.Style := psDot;
  Can.Brush.Style := bsClear;
  Can.Pen.Color := RGB(255,255,255);
  Can.Rectangle(X,Y,X + 150,Y + 170);
 // can.Destroy;
end;procedure TCameraForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  timer1.Enabled:=false;
end;procedure TCameraForm.FormShow(Sender: TObject);
begin
timer1.Enabled:=true;
end;procedure TCameraForm.FormHide(Sender: TObject);
begin
  timer1.Enabled:=false;
end;
程序运行正常,但是运行几分钟后就报告错误了:canvas does not allow drawing
高手帮忙呀,学校招生报名人多呀,出这个问题了,我是菜鸟呀,只有20分了

解决方案 »

  1.   

    画的太快了,画完以后最好Sleep一下
      

  2.   

    procedure   TCameraForm.Timer1Timer(Sender:   TObject);
    var
      Can:TCanvas;
    begin
        Can   :=   TCanvas.Create;
        Can.Handle   :=   GetDC(Cap);
        Can.Pen.Style   :=   psDot;
        Can.Brush.Style   :=   bsClear;
        Can.Pen.Color   :=   RGB(255,255,255);
        Can.Rectangle(X,Y,X   +   150,Y   +   170);
        ReleaseDC(Handle,Can.Handle);   //********************
        Can.Destroy;                    //********************
    end;