|
統計圖表元件的應用範圍很廣, 同時也是展示 GUI 風格的最好示範, 整理了一下常用的語法, 都從 CODE 來控制, 不在 IDE 中設定 CONTROL 的屬性; 另外我發覺本元件 BUG 還很多, 有些屬性設了沒反應, 不過聽說台灣有人用 Lazarus 統計圖表元件 寫了複雜且跨平台的股票分析趨勢圖 ( 請見後註二) , 我想運用一些心思, 避惡揚善仍可把 Lazarus 的 統計圖表元件功能發揮到淋漓盡致
--------------------------------------------------------------------------------------------------------------------------------------
共用部份
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, TAGraph, TASources, TASeries, TAChartUtils;
var
Form1: TForm1;
FArea: TAreaSeries;
FBar: TBarSeries;
FLine: TLineSeries;
FPie: TPieSeries;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
if FBar <> nil then FreeAndNil(FBar);
if FPie <> nil then FreeAndNil(FPie);
if FArea <> nil then FreeAndNil(FArea);
if FLine <> nil then FreeAndNil(FLine);
end;
長條圖
procedure TForm1.Button1Click(Sender: TObject);
var ser: TBasicChartSeries;
begin
if FBar = nil then
begin
Chart1.ClearSeries;
Chart1.ExpandPercentage:=10; //最左右兩長條圖距牆邊界
Chart1.Frame.Width:=2;
FBar := TBarSeries.Create(Chart1);
FBar.Title := 'bars';
FBar.SeriesColor := clGreen;
FBar.Depth:=15; //3D 長條圖
Chart1.AddSeries(FBar);
//統計表 TITLE
Chart1.Title.Text.Clear;
Chart1.Title.Text.Add('長條圖統計表');
Chart1.Title.Visible:=true;
//統計表 LayOut 風格
FBar.Marks.Style := TSeriesMarksStyle(smsValue); //提示資料內容, uses TAChartUtils
FBar.ShowInLegend := true;
end;
//統計表 資料設定(四筆資料例)
FBar.AddXY(8, 50.0, 'xlabel_1', clBlue);
FBar.AddXY(9, 60.0, 'xlabel_2', clRed);
FBar.AddXY(10, 40.0, 'xlabel_3', clBlue);
FBar.AddXY(11, 70.0, 'xlabel_4', clRed);
end;
--------------------------------------------------------------------------------------------------------------------------------------
圓餅圖
無法做成立體的
procedure TForm1.Button2Click(Sender: TObject);
begin
if FPie = nil then
begin
Chart1.ClearSeries;
Chart1.ExpandPercentage:=10;
Chart1.Frame.Width:=2;
FPie := TPieSeries.Create(Chart1);
FPie.Title := 'pie';
FPie.SeriesColor := clGreen;
//FPie.Depth:=15; //3D
Chart1.AddSeries(FPie);
//統計表 TITLE
Chart1.Title.Text.Clear;
Chart1.Title.Text.Add(' 圓餅圖統計表');
Chart1.Title.Visible:=true;
//統計表 LayOut 風格
FPie.Marks.Style := TSeriesMarksStyle(smsValue); //提示資料內容, uses TAChartUtils
FPie.ShowInLegend := true;
end;
FPie.AddPie(10, 'label_1', clTAColor);
FPie.AddPie(20, 'label_2', clTAColor);
FPie.AddPie(30, 'label_3', clTAColor);
FPie.AddPie(40, 'label_4', clTAColor);
end;
--------------------------------------------------------------------------------------------------------------------------------------
■ 後註一
1. 程式下載 (含 source code) digitraveler.homelinux.com/down_load/LazChart.zip
--------------------------------------------------------------------------------------------------------------------------------------
■ 後註二
台灣股票軟件 For Lazarus,為Lazarus程序開發人員打打氣!!
億股亨ASUS EeePC Linux
www.youtube.com/watch?v=18mUwFOVqrk
全球大亨 WinCE
www.youtube.com/watch?gl=TW&hl=zh-TW&v=uZmoJZg5Ppo
原作者 brianwung 提到 :
使用Lazarus 開發近二年,第一個是Linux for ASUS EeePC的股票軟件,是由原本Delphi移值過來的。
第二個是使用Lazarus 新開發的軟件目前WinCE、Win32、Linux沒問題,還在開發階段就是了。
也曾Post到智器Q5、眾一的MID上( Arm Linux ),只差Lnet Socket無法連接,也請教了作者。
目前希望使用Lazarus + SDL 開發Android & Iphone,努力中....
使用Lazarus開發其實比其它的更辛苦,Bug很多、3RD元件太少....
但它是真正能跨平台的,不久的將來一定會發揚光大,
希望這篇文章能拋磚引玉讓更多的人加入Lazaurs的開發,也為目前使用Lazarus的人加油。 |
评分
-
查看全部评分
|