如题:有哪位高手有写过类似的东西,最近一直在研究这个东东,针对于delphi的现成的控件是没有的,
有的也是测试版的,所以只能自己去实现,还请各路高手指点,难点在于:
1、横坐标的日期要怎么去显示,自己画吗,然后分格;
2、怎么去控制进度条,可以让用户拖拉并写进数据库中;
....
还请大家帮帮忙了,谢谢了,由于本人比较菜,还请知道的说详细点,高分酬谢,不够再加!也可以发邮件[email protected]

解决方案 »

  1.   

    补充下 :TeeChart里有 TGanttSeries。
      

  2.   

    不好意思各位,研究这个问题真的弄得头痛了...
    我也知道TeeChar啊...
    当然是要好好学习了,象你们这样回答问题,分数也太好赚了吧。
    貌似这个问题网络上没有详细的解答了,顶多就到这个点吧。
    等待高人....
      

  3.   

        Chart1: TChart;
        Series1: TGanttSeries;........
    procedure TForm1.Button1Click(Sender: TObject);
    Var
        tmp1,tmp2,tmp3 : Longint;
    begin
        Series1.Clear;
        tmp1 := Series1.AddGantt( EncodeDate( 2008, 1,1 ),
                                   EncodeDate( 2008, 1,31 ),
                                   0,
                                   '任务1' );    tmp2 := Series1.AddGantt(  EncodeDate( 2008, 3,1 ),
                                   EncodeDate( 2008, 3,31 ),
                                   1,
                                   '任务2' );    tmp3 := Series1.AddGantt(  EncodeDate( 2008, 4,1 ),
                                   EncodeDate( 2008, 4,30 ),
                                   2,
                                   '任务3' );    Series1.NextTask[ tmp1 ]:= tmp2 ;
        Series1.NextTask[ tmp2 ]:= tmp3 ;
    end;
      

  4.   


    谢谢gzmhero,
    要用TChart确实是要自己摸索一段时间,我觉得我不懒,只是比较菜而已,领悟比较低,
    最后问你个问题:   
      1、可不可以进行点击和拖拽来修改图上面的横条吗?比如通过鼠标来对图中的Gantt Bar进行合并或拉长等操作吗?   
        
      2、对每一个Gantt   Bar是否可以赋予不同的颜色值来显示其状态或参数?说下思路吧,谢谢!问完这个就结帖了。
      

  5.   

    那就用AddGanttColorprocedure TForm1.Button1Click(Sender: TObject);
    Var
        tmp1,tmp2,tmp3 : Longint;
    begin
        Series1.Clear;
        tmp1 := Series1.AddGanttColor(  EncodeDate( 2008, 1,1 ),
                                        EncodeDate( 2008, 1,31 ),
                                        0,
                                        '任务1',
                                        clBlue );    tmp2 := Series1.AddGanttColor(  EncodeDate( 2008, 3,1 ),
                                        EncodeDate( 2008, 3,31 ),
                                        1,
                                        '任务2',
                                        clYellow );    tmp3 := Series1.AddGanttColor(  EncodeDate( 2008, 4,1 ),
                                        EncodeDate( 2008, 4,30 ),
                                        2,
                                        '任务3',
                                        clRed );    Series1.NextTask[ tmp1 ]:= tmp2 ;
        Series1.NextTask[ tmp2 ]:= tmp3 ;
    end;
      

  6.   

    爱怎么说怎么说吧,没必要欺负菜鸟啊你们,
    首先要非常感谢 gzmhero 大哥,也感谢各位,没有各位的鄙视我也实现不了要的效果,呵呵... 
    在大家的鼓励下,我终于找到了如何拖拽gantt上的进度条,
    但是还是有一个地方不了解的是,要怎么让一条进度条可以同时显示两中颜色来将计划和实际的进度区分?...
    我想给gzmhero 大哥  60分,已定,希望剩下40分的疑问能有人来帮忙一下...