(lazarus)在安卓中画一个chart

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

    用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}

interface

uses
  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;

implementation

uses
  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值