C check Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-26 #1 我用TeeChart 读取了类似K线的数据,成功显示了一条上下波动的曲线,我现在想要实现鼠标停留在曲线的某一个点上的时候,在鼠标旁边显示出该点横纵坐标值, 显示的信息要放在一个矩形边框里面. 不知道如何实现. 等高手解答.谢谢!
我用TeeChart 读取了类似K线的数据,成功显示了一条上下波动的曲线,我现在想要实现鼠标停留在曲线的某一个点上的时候,在鼠标旁边显示出该点横纵坐标值, 显示的信息要放在一个矩形边框里面. 不知道如何实现. 等高手解答.谢谢!
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-26 #2 以前做过的代码 procedure TCellPlotFrame.Chart_CellPlotMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var HintStr: string; TmpRect: TRect; i: Integer; TmpSeries: TCustomSeries; XValue, YValue:do uble; begin for i := 0 to FSeriesList.Count - 1do begin TmpSeries := PTCellSeries(FSeriesList.Items)^.FCellSeries; if TmpSeries.Clicked(X, Y) > -1 then begin TmpSeries.GetCursorValues(XValue, YValue); HintStr := Format('%s | X:%.1f Y:%.1f', [TmpSeries.Title, XValue, YValue]); TmpRect := Rect(Mouse.CursorPos.X - 148, Mouse.CursorPos.Y - 18, Mouse.CursorPos.X, Mouse.CursorPos.Y - 4); FHintWindow.ActivateHint(TmpRect, HintStr); {此处显示hint} Break; end; end; end;
以前做过的代码 procedure TCellPlotFrame.Chart_CellPlotMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var HintStr: string; TmpRect: TRect; i: Integer; TmpSeries: TCustomSeries; XValue, YValue:do uble; begin for i := 0 to FSeriesList.Count - 1do begin TmpSeries := PTCellSeries(FSeriesList.Items)^.FCellSeries; if TmpSeries.Clicked(X, Y) > -1 then begin TmpSeries.GetCursorValues(XValue, YValue); HintStr := Format('%s | X:%.1f Y:%.1f', [TmpSeries.Title, XValue, YValue]); TmpRect := Rect(Mouse.CursorPos.X - 148, Mouse.CursorPos.Y - 18, Mouse.CursorPos.X, Mouse.CursorPos.Y - 4); FHintWindow.ActivateHint(TmpRect, HintStr); {此处显示hint} Break; end; end; end;
C check Unregistered / Unconfirmed GUEST, unregistred user! 2007-03-26 #3 谢谢1楼的,不过我想要C++Builder 的代码,你的是Delphi的吧, 现在我自己已经可以在Chart的MouseMove 事件中显示每个点的值,但是每一次只能显示一个点的值,当我鼠标放在第一个点上时,它可以显示第一个点的值,但是当我想看第二个点的值的时候,我就要把鼠标移到Chart 的图形以外,然后移回到图里停留在第而个点上,才能显示第二个点的值,怎样才能一次就在图里,从左到右每一个点的值,我鼠标停留在上面的时候都能显示呢? 还有一个问题就是,Chart 的Series有MouseMove事件么?是不是把我的代码写到Series的MouseMove事件里面才行?
谢谢1楼的,不过我想要C++Builder 的代码,你的是Delphi的吧, 现在我自己已经可以在Chart的MouseMove 事件中显示每个点的值,但是每一次只能显示一个点的值,当我鼠标放在第一个点上时,它可以显示第一个点的值,但是当我想看第二个点的值的时候,我就要把鼠标移到Chart 的图形以外,然后移回到图里停留在第而个点上,才能显示第二个点的值,怎样才能一次就在图里,从左到右每一个点的值,我鼠标停留在上面的时候都能显示呢? 还有一个问题就是,Chart 的Series有MouseMove事件么?是不是把我的代码写到Series的MouseMove事件里面才行?