我在我的窗体上画一条线,语句如下,不行,为什么?该如何改?谢谢.
var a:tcanvas;  //这样定义了a 与canvas 区别在哪?
begin
   a:=tcanvas.Create;
   a.Pen.Color:=clred;
   a.MoveTo(10,100);
   a.LineTo(100,100);
   a.Brush.Color:=clbtnface;
   a.Font.Name:='Arial';
   a.textout(a.PenPos.X,a.PenPos.Y,'hello');
end;

解决方案 »

  1.   

    a.MoveTo(10,100);
    a.LineTo(100,100);
    a.textout(a.PenPos.X,a.PenPos.Y,'hello');
    这三条语句错,错误是 canvas dose not allow drawing
      

  2.   

    要在窗体的Canvas上画才行。
    var
        a:tcanvas;  //ÕâÑù¶¨ÒåÁËa Óëcanvas Çø±ðÔÚÄÄ?
    begin
    //   a:=tcanvas.Create;
        a:=Form1.Canvas;
       a.Pen.Color:=clred;
       a.MoveTo(10,100);
       a.LineTo(100,100);
       a.Brush.Color:=clbtnface;
       a.Font.Name:='Arial';
       a.textout(a.PenPos.X,a.PenPos.Y,'hello');
      

  3.   

    试一下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
        a:tcanvas; 
    begin
       a:=Form1.Canvas;
       a.Pen.Color:=clred;
       a.MoveTo(10,100);
       a.LineTo(100,100);
       a.Brush.Color:=clbtnface;
       a.Font.Name:='Arial';
       a.textout(a.PenPos.X,a.PenPos.Y,'hello');
    end;