首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 動態三維餅圖:TVTChart + Timer 即時刷新資料視覺化

     編輯:Delphi

VCL 自帶的 TVTChart (TeeChart 精簡版) 支援 2D/3D 餅圖、長條圖、折線圖等多種圖表類型。搭配 TTimer 定期更新圖表資料,即可零代碼實現動態儀表板效果。本文示範最簡單的「單一數值隨機變化驅動餅圖即時重繪」範例。

元件佈局

  • TVTChart1:拖放至表單,設計時右鍵選「Edit」→ Add Series → Pie (餅圖) → 設定 3D 深度、顏色調色盤。
  • Timer1: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;

進階動態圖表技巧

完整單元代碼


unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, VCFI, ExtCtrls, Math;
type TForm1 = class(TForm)
  VTChart1: TVTChart;
  Timer1: TTimer;
  procedure Timer1Timer(Sender: TObject);
  procedure FormCreate(Sender: TObject);
private { Private declarations }
public  { Public declarations }
end;
var Form1: TForm1;
implementation {$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  VTChart1.Series[0].YValues[0] := Random(200);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;
end.

TeeChart 版本說明

  • TeeChart Standard (隨 Delphi 附贈):功能受限,無動畫、無部分匯出格式、序列化受限。
  • TeeChart Pro / Lite (Steema 官方):完整功能,支援 VCL/FMX/WEB/CLR,授權費用較高。
  • 替代方案:TChart (免費開源)、FastReport 內建圖表、第三方如 TMS Chart、ECharts (WebView2 嵌入)。

對於「儀表板即時顯示幾個關鍵指標」的輕量需求,內建 VTChart + Timer 即可滿足,無需引入龐大依賴。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
需求實作方式
多系列同時更新迴圈更新 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