mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-05 07:03:48 +02:00
105 lines
2.4 KiB
ObjectPascal
105 lines
2.4 KiB
ObjectPascal
unit Main;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, ExtCtrls, StdCtrls, SysUtils, FileUtil, Forms, Controls, Graphics,
|
|
FPCanvas, Dialogs, Agg_LCL, TAGraph, TASeries, TASources, TADrawerAggPas;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
Chart1: TChart;
|
|
Chart1AreaSeries1: TAreaSeries;
|
|
Chart1BarSeries1: TBarSeries;
|
|
Chart1ConstantLine1: TConstantLine;
|
|
Chart1LineSeries1: TLineSeries;
|
|
Chart1PieSeries1: TPieSeries;
|
|
cbAggPas: TCheckBox;
|
|
PaintBox1: TPaintBox;
|
|
Panel1: TPanel;
|
|
RandomChartSource1: TRandomChartSource;
|
|
procedure cbAggPasClick(Sender: TObject);
|
|
procedure Chart1AfterPaint(ASender: TChart);
|
|
procedure ChartPaint(
|
|
ASender: TChart; const ARect: TRect; var ADoDefaultDrawing: Boolean);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure PaintBox1Paint(Sender: TObject);
|
|
private
|
|
FAggCanvas: TAggLCLCanvas;
|
|
FBmp: TBitmap;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
uses
|
|
TADrawerCanvas, TADrawUtils;
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.cbAggPasClick(Sender: TObject);
|
|
begin
|
|
if cbAggPas.Checked then
|
|
Chart1.OnChartPaint := @ChartPaint
|
|
else
|
|
Chart1.OnChartPaint := nil;
|
|
end;
|
|
|
|
procedure TForm1.Chart1AfterPaint(ASender: TChart);
|
|
begin
|
|
PaintBox1.Invalidate;
|
|
end;
|
|
|
|
procedure TForm1.ChartPaint(ASender: TChart; const ARect: TRect;
|
|
var ADoDefaultDrawing: Boolean);
|
|
begin
|
|
FAggCanvas.Width := ARect.Right - ARect.Left;
|
|
FAggCanvas.Height := ARect.Bottom - ARect.Top;
|
|
ASender.Draw(TAggPasDrawer.Create(FAggCanvas), ARect);
|
|
FBmp.LoadFromIntfImage(FAggCanvas.Image.IntfImg);
|
|
ASender.Canvas.Draw(0, 0, FBmp);
|
|
ADoDefaultDrawing := false;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
FBmp := TBitmap.Create;
|
|
FAggCanvas := TAggLCLCanvas.Create;
|
|
end;
|
|
|
|
procedure TForm1.FormDestroy(Sender: TObject);
|
|
begin
|
|
FAggCanvas.Free;
|
|
FBmp.Free;
|
|
end;
|
|
|
|
procedure TForm1.PaintBox1Paint(Sender: TObject);
|
|
var
|
|
d: IChartDrawer;
|
|
begin
|
|
FAggCanvas.Width := PaintBox1.Width;
|
|
FAggCanvas.Height := PaintBox1.Height;
|
|
Chart1.DisableRedrawing;
|
|
Chart1.Title.Text.Text := 'AggPas';
|
|
d := TAggPasDrawer.Create(FAggCanvas);
|
|
d.DoGetFontOrientation := @CanvasGetFontOrientationFunc;
|
|
Chart1.Draw(d, PaintBox1.Canvas.ClipRect);
|
|
Chart1.Title.Text.Text := 'Standard';
|
|
Chart1.EnableRedrawing;
|
|
FBmp.LoadFromIntfImage(FAggCanvas.Image.IntfImg);
|
|
PaintBox1.Canvas.Draw(0, 0, FBmp);
|
|
end;
|
|
|
|
end.
|
|
|