(lazarus)在安卓中画一个chart

来源:互联网 发布:职场霸凌 知乎 编辑:程序博客网 时间:2024/05/26 02:55

    基本步骤按照前面的说明:

    用lazarus瞬间开发自己的安卓APP http://blog.csdn.net/bq_cui/article/details/43762659 

    画chart的步骤,按照  无需代码生成一个条形图 http://blog.csdn.net/bq_cui/article/details/43865369   以及相关的几篇文章。

主要的问题是,如果不需要反锯齿,laz4android中现有的控件直接就可满足使用。如果需要反锯齿,laz4android需要安装一下 ChartGUIConnectorBGRA控件。D:\laz4android\insPkg\tachart\chartbgra\tachartbgra.lpk 这个bao安装一下就好了。

 

unit mainform; {$mode objfpc}{$H+}{$ifdef CPUARM}  {$define Android}{$endif}{.$define TEST_SQLITE}interfaceuses  Classes, SysUtils, FileUtil, TAGraph, TASeries, TASources,  Forms, Controls, Graphics, Dialogs, LCLProc,  LCLType, LCLIntf, InterfaceBase, lazdeviceapis, Menus,  ClipBrd, Buttons, ExtCtrls, StdCtrls, TAGUIConnectorBGRA, types;type  TSubControl = class;  { Tform1 }  Tform1 = class(TForm)    Button1: TButton;    Chart1: TChart;    ChartGUIConnectorBGRA1: TChartGUIConnectorBGRA;    Panel1: TPanel;    RandomChartSource1: TRandomChartSource;    procedure Button1Click(Sender: TObject);    procedure FormCreate(Sender: TObject);    procedure FormPaint(Sender: TObject);    procedure MenuItem1Click(Sender: TObject);  private    { private declarations }    x, y, x1, y1, x3, y3: Double;    FLine: TLineSeries;    procedure InitLine;  public    { public declarations }    SubControl: TSubControl;    ClickCounter: Integer;    procedure HandleMessageDialogFinished(Sender: TObject; AResult: Integer);    procedure MyOnListViewDialogResult(ASelectedItem: Integer);  end;   { TSubControl }  TSubControl = class(TCustomControl)  public  end;var  form1: Tform1;implementationuses  TATypes, TAChartUtils,  ctypes //android_sockets,  {$ifdef Android}  ,jni,customdrawnint  {$endif}  ;{ TSubControl }{$R *.lfm}{ Tform1 }procedure TForm1.InitLine;begin  FLine := TLineSeries.Create(Chart1);  FLine.ShowLines := true;  FLine.ShowPoints := true;  FLine.Pointer.Style := psRectangle;  FLine.Pointer.Brush.Color := clRed;  FLine.Title := 'line';  FLine.SeriesColor := clGreen;  //FLine.Depth:= 10;  Chart1.AddSeries(FLine);end;procedure Tform1.FormCreate(Sender: TObject);begin  //SubControl := TSubControl.Create(Self);  //SubControl.Left := 40;  //SubControl.Top := 160;  //SubControl.Width := 50;  //SubControl.Height := 50;  //SubControl.Parent := Self;  //OnListViewDialogResult := @MyOnListViewDialogResult;end;procedure Tform1.Button1Click(Sender: TObject);var  i: integer;begin  if FLine = nil then InitLine;  FLine.ZPosition := 1;  //BringToFront(FLine);  //FLine.Marks.Style := TSeriesMarksStyle(cbMarkStyle.ItemIndex);  //for i := 1 to edAddCount.Value do begin    FLine.AddXY(x1, y1, '', clBlue);    X1 := X1 + 1.5;    if random(2) >= 0.5 then Y1 := Y1 + random(10)    else Y1 := Y1 - random(5);  //end;end;procedure Tform1.FormPaint(Sender: TObject);//var//  lPoints: array[0..2] of TPoint;begin  //Canvas.Brush.Color := clRed;  //lPoints[0] := Point(67,57);  //lPoints[1] := Point(11,29);  //lPoints[2] := Point(67,1);  //Canvas.Polygon(lPoints);{  Canvas.Brush.Color := clRed;  Canvas.Rectangle(10, 10, 100, 100);  Canvas.Brush.Color := clGreen;  Canvas.Rectangle(100, 100, 200, 200);  Canvas.Brush.Color := clBlue;  Canvas.Rectangle(200, 200, 300, 300);}end;procedure Tform1.MenuItem1Click(Sender: TObject);begin  DebugLn('[TForm1.MenuItem1Click]');end;procedure Tform1.HandleMessageDialogFinished(Sender: TObject; AResult: Integer);begin  DebugLn(Format('[TForm1.HandleMessageDialogFinished] AResult=%d', [AResult]));end;procedure Tform1.MyOnListViewDialogResult(ASelectedItem: Integer);begin  DebugLn(Format('[MyOnListViewDialogResult] ASelectedItem=%d', [ASelectedItem]));end;end.


 

 

a

0 0
原创粉丝点击