基本步骤按照前面的说明:
用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