写了一个继承自TMemo的类TTestMemo
type
  TTestMemo=class(TMemo)
private
  FCanvas: TCanvas;
public
  Constructor Create(AOwner: TComponent);
  Destructor  Destroy;override;
published
  Canvas: TCanvas read FCanvas;
end;
然后在主程序单元中,动态创建了一个TTestMemo的对象,在它的canvas上画
为何提示"not allow drawing"错误?

解决方案 »

  1.   

    我猜  Canvas: TCanvas read FCanvas write ???
      

  2.   

    你的Canvas初始化了吗?你的Canvas有没有得到Memo的DC呢?
    没有的话,不能画图的。
    另外,to  cocoboy79:这个Canvas是不需要Write的访问的。
      

  3.   

    是的如果你的Canvas没有初始化,肯定不行,想做这样的类去看看Delphi有Canvas控件的代码吧
      

  4.   

    uppublished
      property Canvas: TCanvas read FCanvas;
      

  5.   

    改成下面吧,应该能行的。type
      TTestMemo=class(TMemo)
    public
      Canvas: TCanvas read FCanvas;
    end;
      

  6.   

    改成下面吧,应该能行的。type
      TTestMemo=class(TMemo)
    public
      property Canvas;
    end;