VCL 自帶的 TVTChart (TeeChart 精簡版) 支援 2D/3D 餅圖、長條圖、折線圖等多種圖表類型。搭配 TTimer 定期更新圖表資料,即可零代碼實現動態儀表板效果。本文示範最簡單的「單一數值隨機變化驅動餅圖即時重繪」範例。
Interval = 1000 (1 秒),Enabled = True。
uses Math; // Random 需要
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize; // 初始化隨機種子,避免每次啟動序列相同
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
// 更新第 1 系列、第 1 點的數值 (0~199)
VTChart1.Series[0].YValues[0] := Random(200);
// 或使用 Data 屬性 (舊版相容)
// VTChart1.Row := 0; VTChart1.Column := 0; VTChart1.Data := FloatToStr(Random(200));
end;
| 需求 | 實作方式 |
|---|---|
| 多系列同時更新 | 迴圈更新 Series[i].YValues[j],或用 AddXY 追加資料點 |
| 資料來源來自資料庫 | Timer 查詢 TQuery/ADOQuery,將 Field 值寫入 Series |
| 平滑動畫過渡 | 啟用 VTChart1.Animation = True (需 TeeChart Pro 完整版) |
| 即時折線圖 (示波器) | Series 類型改 Line,用 AddXY 時間軸,超過最大點數刪除舊點 |
| 滑鼠互動顯示數值 | 啟用 VTChart1.ShowHint = True,設定 OnGetSeriesMark |
| 匯出圖片/列印 | VTChart1.SaveToBitmapFile、VTChart1.Print |