mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-03 06:43:39 +02:00
72 lines
1.7 KiB
ObjectPascal
72 lines
1.7 KiB
ObjectPascal
unit Unit1;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, TAGraph, TASources, TASeries, Forms, Controls,
|
|
Graphics, Dialogs, ExtCtrls, StdCtrls, population, TACustomSource;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
Chart1: TChart;
|
|
Chart1AreaSeries1: TAreaSeries;
|
|
ComboBox1: TComboBox;
|
|
Panel1: TPanel;
|
|
UserDefinedChartSource1: TUserDefinedChartSource;
|
|
procedure ComboBox1Select(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure UserDefinedChartSource1GetChartDataItem(
|
|
ASource: TUserDefinedChartSource; AIndex: Integer;
|
|
var AItem: TChartDataItem);
|
|
private
|
|
{ private declarations }
|
|
PopulationData: TPopulationArray;
|
|
public
|
|
{ public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
const
|
|
POPULATION_FILE = 'population.txt';
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
LoadPopulationData(POPULATION_FILE, PopulationData);
|
|
UserDefinedChartSource1.PointsNumber := Length(PopulationData);
|
|
Chart1.LeftAxis.Title.Caption := Combobox1.Items[Combobox1.ItemIndex];
|
|
end;
|
|
|
|
procedure TForm1.ComboBox1Select(Sender: TObject);
|
|
begin
|
|
Chart1.LeftAxis.Title.Caption := Combobox1.Items[Combobox1.ItemIndex];
|
|
UserDefinedChartSource1.Reset;
|
|
end;
|
|
|
|
procedure TForm1.UserDefinedChartSource1GetChartDataItem(
|
|
ASource: TUserDefinedChartSource; AIndex: Integer; var AItem: TChartDataItem);
|
|
begin
|
|
AItem.X := PopulationData[AIndex].Age;
|
|
case Combobox1.ItemIndex of
|
|
0: AItem.Y := PopulationData[AIndex].Total;
|
|
1: AItem.Y := PopulationData[AIndex].Male;
|
|
2: AItem.Y := PopulationData[AIndex].Female;
|
|
3: AItem.Y := PopulationData[AIndex].Ratio;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|