首先在线图tchart中添加了一系列的值,最后根据一定算法计算出一个小值和大值(小值要小于添加的所有值,大值要稍大于添加的所有值,主要是避免tchart图出现顶天立地),并把这2值设置为tchart的最大值和最小值,但有的时候就会弹出最小值不能>=最大值的提示,可是根据算法计算出的小值和大值是不会大于当前tchart中的最大值最小值,请问有人遇到过吗,怎么解决?
pChart->GetAxis().GetRight().SetAutomaticMaximum(TRUE);
pChart->GetAxis().GetRight().SetAutomaticMinimum(TRUE);
dMax = pChapChart->GetAxis().GetRight().MaxYValue();
dMin = pChart->GetAxis().GetRight().MinYValue();
pChart->GetRight().SetAutomatic(FALSE);.....计算大值和小值的算法..............         //设置为tchart最大值和最小值
pChart->GetAxis().GetRight().SetMinimum(dMin);//出错
pChart->GetAxis().GetRight().SetMaximum(dMax);

解决方案 »

  1.   

    新设置的最大值肯定大于MaxYValue()的,新设置的最小值肯定是小于MinYValue(),程序中这算法是不会错的。请问如下2对函数是什么区别呢?不太明白。
    GetMaximum();GetMinimum();
    MaxYValue();MinYValue();
    当前坐标轴显示范围是哪个呢?为什么没有如下函数:SetMaxYValue(),SetMinYValue();
      

  2.   

    你没理解我的意思。
    现在假设:
    NewMin、NewMax为将要设置的最小值、最大值(假设为:3、4)
    OldMin、OldMax为本来的最小值、最大值(假设为:1、2)pChart->GetAxis().GetRight().SetMinimum(dMin);//出错
    //执行到这儿时,最小值为3,但最大值为2,当然出错了。当NewMin>=OldMax时,赋值顺序应当为:
    pChart->GetAxis().GetRight().SetMaximum(dMax);//先设置最大值
    pChart->GetAxis().GetRight().SetMinimum(dMin);//再设置最小值当NewMax<OldMin时,赋值顺序应当为:
    pChart->GetAxis().GetRight().SetMinimum(dMin);//先设置最小值
    pChart->GetAxis().GetRight().SetMaximum(dMax);//再设置最大值注:以上代码并没有测试,只是表达一个思路。
      

  3.   

    xxmmmx(踢踏) : 谢谢,你这种方式是解决出现异常的一个不错的解决方法。
    但现在我有点不明白的就是,我新设置的最大值一定是大于该坐标MaxYValue()值,新设置的最小值一定是小于该坐标MinYValue()值,那为什么还会出现异常呢? 给该坐标添加了一系列的值后,其GetMaximum()和GetMinimum()值好像默认都为0,不知道是不是这个原因造成的。
    然而直接在tchart控件的editor菜单命令弹出的编辑框中设置最大值和最小值就不会出现错误。
      

  4.   

    直接调用坐标的函数SetMinMax(double Min, double Max),简单之极。