TWinControl(FControl).PaintTo(Canvas.Handle,5,5);
当fcontrol是button,checkbox,panel时都不报错
当Fcontrol是label及一些自定义的控件时就报错,有大虾知道怎么回事么?

解决方案 »

  1.   

    label不是从 TWinControl继承来的
      

  2.   

    label,应该怎么办,还有那些自定义的控件
      

  3.   


    用判断一下
    if (button2 is Twincontrol) then TWinControl(FControl).if (label1 is TGraphicControl) then TGraphicControl(FControl).
      

  4.   


    if (FControl is Twincontrol) then TWinControl(FControl). if (FControl is TGraphicControl) then TGraphicControl(FControl).
      

  5.   

    TGraphicControl(FControl).
    没有paintto方法
      

  6.   

    TGraphicControl(FControl). 
    有canvas.draw
      

  7.   

    在 canvas上 画label,以及一些继承自Tgraphiccontrol的控件,不知道怎么画出来
    canvas.draw(x,y,fcontrol);
    这个方法,fcontrol要求是graphic变量
    提示incompatible type:'Tgraphic'and 'Tcontrol'
      

  8.   

    我也在想这个问题,也没有满意的办法,目前我是这样解决的:
    1.用TStaticText代替TLabel
    2.对于其他控件,用TControlCanvas的CopyRect,具体是:
        ACanvas   :=   TControlCanvas.Create;
        ACanvas.Control   :=   Label1;
        rc  :=  Rect(0,0,Label1.Width,Label1.Height);
        dsCanvas.CopyRect(rc, ACanvas, rc);
        ACanvas.Free;
      

  9.   

    1.好方法
    2.copyrect方法,总是保留源图形,效果不是很理想