procedure TForm5.FormCreate(Sender: TObject);
begin
Form5.Canvas.Pen.Color:=clBlack;
Form5.Canvas.Pen.Width:=2;
form5.Canvas.MoveTo(2,0);
Form5.Canvas.LineTo(2,80);end;

解决方案 »

  1.   

    别写在创建里
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Canvas.Brush.Color := clYellow;
    Canvas.Pen.Color:=clBlack;
    Canvas.Pen.Width:=1;
    Canvas.MoveTo(2,2);
    Canvas.LineTo(2,80);end;
      

  2.   

    还有 Close 什么的 都不能写.
      

  3.   

    简单的说,你在 Create 里面画,是画出来了,但是 Onshow 的时候刷掉了,你看不到。
    那谁能看到呢?只有电脑知道。
      

  4.   

    难怪,试了好久,也没弄出来,那如果是在控件里面呢?
    easygrid1.Canvas.MoveTo(x8.Left,x8.Top);
    easygrid1.Canvas.LineTo(x8.Right,x8.Top);
    也不行的吗?
      

  5.   

    easygrid1 是什么,表格吗?在表格上画线做啥~~?
      

  6.   

    我重绘过了,还是没出来,我画的是cell的边框
      

  7.   

    看 错了把paint,看成Repaint。
    怎么重写控件的paint啊?
      

  8.   

    cell没有边框吗,还要你再画边框?
      

  9.   

    cell有边框啊?但是同一个单元的边框的topborder,leftborder,rightborde,bottoborder的粗细不可以独立的设置啊
    也就是说
    AGrid.Cells[2,3].LineWidth:=2;//以线宽2,画top
    AGrid.Cells[2,3].DrawTop:=true;
    AGrid.Cells[2,3].LineWidth:=1;//以线宽1,画Left
    AGrid.Cells[2,3].DrawLeft:=True;