Y坐标是数值
X坐标是时间,请教如何取得当前鼠标(移动)位置的时间数值
本人自己作了一个算法时间老差一两天:
  fmax:=DBChart2.BottomAxis.Maximum;
  fmin:=DBChart2.BottomAxis.Minimum;
  //每个Y坐标量
  cstm:=(fmax-fmin)/(dbchart2.ChartRect.Right-dbchart2.ChartRect.left)*(x-dbchart2.ChartRect.left);
{  tmp_dy:=inttostr(1900+(trunc(fmin+cstm) div 365))+'-'+intTostr((trunc(fmin+cstm)mod 365) div 30)+
                '-'+intTostr(4+(Trunc(fmin+cstm)mod 365) mod 30);
   DecodeDate(STRtODATE(tmp_dy), Yr, Mnth, Day);}    maxdys:=monthdays[isleapyear(1900+(trunc(fmin+cstm) div 365)),(trunc(fmin+cstm)mod 365) div 30];//日期
   if (4+(Trunc(fmin+cstm)mod 365) mod 30)>maxdys then
   lbval.Caption:='时间:'+intTostr(1+(trunc(fmin+cstm)mod 365) div 30)+'-'+intTostr(4+(Trunc(fmin+cstm)mod 365) mod 30-maxdys)
   else
   lbval.Caption:='时间:'+intTostr((trunc(fmin+cstm)mod 365) div 30)+'-'+intTostr(4+(Trunc(fmin+cstm)mod 365) mod 30);//时间
  if trunc(60*(strTofloat(Format('%0.1f',[((fmin+cstm)-Trunc(fmin+cstm))*24]))-trunc((fmin+cstm-Trunc(fmin+cstm))*24)))>=60 then
  lbval.Caption:=lbval.Caption+' '+Format('%0.0f',[1+((fmin+cstm)-Trunc(fmin+cstm))*24])+':00    '//+intTOstr(trunc(60*(strTofloat(Format('%0.1f',[((fmin+cstm)-Trunc(fmin+cstm))*24]))-trunc((fmin+cstm-Trunc(fmin+cstm))*24))))
  else
  lbval.Caption:=lbval.Caption+' '+Format('%0.0f',[((fmin+cstm)-Trunc(fmin+cstm))*24])+
                 ':'+intTOstr(trunc(60*(strTofloat(Format('%0.1f',[((fmin+cstm)-Trunc(fmin+cstm))*24]))-trunc((fmin+cstm-Trunc(fmin+cstm))*24))))+'   ';