首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Chart 控制項滑鼠懸停顯示資料點座標 (Delphi 實作)

     編輯:關於.NET

需求

在 Delphi 使用 TeeChart (TChart) 元件繪製曲線圖時,滑鼠移至資料點上方時,以 Hint (提示) 顯示該點的 X、Y 座標值。

核心程式碼

procedure TForm1.pntsrsSeries1MouseEnter(Sender: TObject);
var
  i: Integer;
  x1, y1: string;
begin
  // 設定游標樣式
  pntsrsSeries1.Cursor := crHandPoint;
  // 啟用 Hint
  cht1.ShowHint := True;

  // 取得游標所在資料點索引
  i := cht1.Series[1].GetCursorValueIndex;

  // 格式化座標值 (保留三位小數)
  x1 := FormatFloat('0.000', cht1.Series[1].XValue[i]);
  y1 := FormatFloat('0.000', cht1.Series[1].YValue[i]);

  // 設定 Hint 文字
  cht1.Hint := 'X: ' + x1 + ' Y: ' + y1;
end;

關鍵點解析

屬性/方法說明
Series.GetCursorValueIndex 取得目前游標位置對應的資料點索引 (整數),若游標不在資料點上則回傳 -1。
Series.XValue[index] / YValue[index] 存取指定索引的 X、Y 數值 (Double)。
FormatFloat('0.000', value) 將浮點數格式化為固定三位小數字串。
TChart.ShowHint 必須設為 True 才會顯示 Hint。
TChart.Hint 動態設定提示文字,隨游標移動即時更新。

進階建議

  • 邊界檢查:實際專案中應加入 if i >= 0 then ... 避免游標不在點上時存取陣列越界。
  • 多序列支援:若圖表含多條序列,可在 OnMouseMove 事件中遍歷所有序列找最近點,或使用 TChart.GetCursorValues。
  • 自訂 Hint 視窗:若需更豐富顯示 (如單位、時間戳),可建立自訂 THintWindow 並在 OnShowHint 事件處理。

總結

利用 TeeChart 內建的 GetCursorValueIndex 與 Hint 機制,僅需十幾行程式碼即可實現資料點座標即時顯示,提升圖表互動體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved