用什么组件快速画这种条形图?,知道的请说下关键代码?能实现如下功能:A:7、3;B:5、5。画出来的图是
A:×××××××(红色)###(黄色)
B: ×××××(红色)#####(黄色)

解决方案 »

  1.   

    以下是一些PaintBox的示例代码,你可以修改一下procedure TForm1.DrawLine;
    begin
      //PB是PaintBox,宽和高最好都设成1000  (* 画坐标线 *)
      PB.Canvas.Pen.Color := clGreen;                 //设置画笔颜色为绿色
      PB.Canvas.MoveTo(10, 0);                        //将画笔移动至点(10, 0)
      PB.Canvas.LineTo(10, 500);                      //画线,从点(10,0)到点(10,500)
      PB.Canvas.MoveTo(10, 500);
      PB.Canvas.LineTo(800, 500);
      PB.Canvas.MoveTo(10, 500);
      PB.Canvas.LineTo(0, 500);
      PB.Canvas.MoveTo(10, 400);
      PB.Canvas.LineTo(0, 400);
      PB.Canvas.MoveTo(10, 300);
      PB.Canvas.LineTo(0, 300);
      PB.Canvas.MoveTo(10, 200);
      PB.Canvas.LineTo(0,200);
      PB.Canvas.MoveTo(10,100);
      PB.Canvas.LineTo(0,100);
      PB.Canvas.MoveTo(10, 0);
      PB.Canvas.LineTo(0, 0);
      PB.Canvas.MoveTo(10, 500);
      PB.Canvas.LineTo(10, 510);
      PB.Canvas.MoveTo(110, 500);
      PB.Canvas.LineTo(110, 510);  (* 画坐标点 *)
      PB.Canvas.MoveTo(210, 500);
      PB.Canvas.LineTo(210, 510);
      PB.Canvas.MoveTo(310, 500);
      PB.Canvas.LineTo(310, 510);
      PB.Canvas.MoveTo(410, 500);
      PB.Canvas.LineTo(410, 510);
      PB.Canvas.MoveTo(510, 500);
      PB.Canvas.LineTo(510, 510);
      PB.Canvas.MoveTo(610, 500);
      PB.Canvas.LineTo(610, 510);
      PB.Canvas.MoveTo(710, 500);
      PB.Canvas.LineTo(710, 510);  (* 画第一个矩形 *)
      PB.Canvas.Brush.Color := clBlue;            //设置矩形颜色
      PB.Canvas.Rectangle(110, 100, 250, 200);    //Rectangle(第一个点的x坐标, 第一个点的用坐标, 第四个点的x坐标, 第四个点y坐标);/////////////////////////////////////////////////////////////
    //                                                         //
    //       A***************************************          //
    //        *                                     *          //
    //        *                                     *          //
    //        *                                     *          //
    //        *                                     *          //
    //        *                                     *          //
    //        *                                     *          //
    //        *                                     *          //
    //        *************************************** B        //
    //        A:第一个点                                              //
    //        B:第四个点                                              //
    /////////////////////////////////////////////////////////////  (* 画第二个矩形 *)
      PB.Canvas.Brush.Color := clRed;
      PB.Canvas.Rectangle(300, 100, 800, 200);
      (* 画第三个矩形 *)
      PB.Canvas.Brush.Color := clGreen;
      PB.Canvas.Rectangle(110, 300, 400, 400);
      (* 画第四个矩形 *)
      PB.Canvas.Brush.Color := clGray;
      PB.Canvas.Rectangle(450, 300, 800, 400);
    end;
      

  2.   

    回RoverX :的确用来画甘特图,
    感谢mantti的帮助!