Это достаточно легко сделать, если вы рисуете график с помощью компонента типа TChart. У него есть методы, возвращающие экранные координаты точек графика. Поскольку я не знаю, график какой функции вы рисуете, покажу
очень приблизительно лишь суть на примере какого-нибудь синуса. А дальше, думаю, разовьете идею самостоятельно. Пишите примерно такой обработчик события OnMouseMove для объекта TChart, на котором рисуется график.
Код:
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
newY: Integer;
curX, curY: Double;
begin
if not (ssCtrl in Shift) then Exit;
curX := Chart1.Series[0].XScreenToValue(X);
curY := Sin(curX); // ваша функция вместо синуса
newY := Chart1.Series[0].CalcYPosValue(curY);
Form1.Caption := FormatFloat('0.000E+00', curX) + ' : ' + FormatFloat('0.000E+00', curY);
SetCursorPos(Mouse.CursorPos.X, Form1.Top + Chart1.Top + newY);
end;
Вполне возможно, ко второму параметру функции SetCursorPos понадобится дополнительная поправка на то, что у объекта TChart имеется бордюр (точнее, отступ от края объекта до рамки графика).
P.S. Ну, примерно. Может, вам предложат лучше.