Вы можете поместить панель в диаграмму и использовать ее как подсказку. С инструментом NearestPoint это работает очень хорошо.
Сначала добавьте инструмент NearestPoint на диаграмму (дважды щелкните на диаграмме, выберите Инструменты / Добавить).
Затем добавьте панель на диаграмму (в компонент «Диаграмма») и настройте ее в соответствии с вашими потребностями.
Затем используйте событие OnMouseMove:
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var i:integer;
px,py:integer;
begin
if PtInRect(Chart1.ChartRect,Point(X,Y)) then
begin
i:=ChartTool1.GetNearestPoint(Series1,X,Y);
if (Series1.XValues.Count>0) and (i<Series1.Count) and (i>=0) then
begin
px:=Series1.CalcXPos(i);
py:=Series1.CalcYPos(i);
//You can add any data here to your panel, even you can put Images to it or anything else
Panel_Hint.Caption:=TimeToStr(Series1.XValue[i])+' • '+FloatToStrF(Series1.YValue[i],ffNumber,20,2);
Panel_Hint.Visible:=true;
Form1.Canvas.Font.Assign(Panel_Hint.Font);
Panel_Hint.Width:=Form1.Canvas.TextWidth(Panel_Hint.Caption)+8;
Panel_Hint.Left:=px-Panel_Hint.Width div 2;
Panel_Hint.Top:=py-Panel_Hint.Height-2;
end
else
Panel_Hint.Visible:=false;
end;
end;
Если хотите, вы можете отключить инструмент NearestPoint, но он нам нужен, чтобы легко найти соответствующую точку.