The TAChart demo is in TAChart/demo. The project file is demo.lpi and the gui is defined by unit1.pas and unit1.lfm. If you can compile and run this you are on your way.
The file TAChart defines, among other things, the TChart type and is used by the Lazarus package. This is the widget you see on the toolbar. When you place it in your form it defines a TChart component. So your Chart1:TChart is correct!
I'm not sure why the authors called the package TAChart. I think it was to distinguish it from the orginal TeeChart by Steema Software which was released for Lazarus at one stage but seems to have disappeared again.
Just looking at your code again it should run if you have added TASeries. You shouldn't need TAChartUtils. This may be the cause of the confusion. Here is an excerpt from one of my apps:
unit ProfileUnit;
{modified to use TAChart}
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Menus,
ExtCtrls, StdCtrls, Buttons, TAGraph, TASeries;
type
{ TProfile }
TProfile = class(TForm)
bbClose: TBitBtn;
bbCorrMap: TBitBtn;
bbCorrelation: TBitBtn;
bbDist: TBitBtn;
bbMTF: TBitBtn;
bbProfile: TBitBtn;
ProfileChart: TChart;
ebWidth: TEdit;
ebOffset: TEdit;
Label1: TLabel;
Label2: TLabel;
pfOpenDialog: TOpenDialog;
pfSaveDialog: TSaveDialog;
XYProfile: TGroupBox;
MainMenu1: TMainMenu;
miCorrMap: TMenuItem;
miCorrelation: TMenuItem;
miDist: TMenuItem;
miMTF: TMenuItem;
miProfile: TMenuItem;
miPlot: TMenuItem;
miSave: TMenuItem;
miOpen: TMenuItem;
miFile: TMenuItem;
Panel1: TPanel;
ProfileData: TSerie;
rbXProfile: TRadioButton;
rbYProfile: TRadioButton;
procedure bbMTFClick(Sender: TObject);
procedure miCorrMapClick(Sender: TObject);
procedure miCorrelationClick(Sender: TObject);
procedure miDistClick(Sender: TObject);
procedure miOpenClick(Sender: TObject);
procedure miProfileClick(Sender: TObject);
procedure miSaveClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Profile: TProfile;
implementation
var Reconfile: string;
{ TProfile }
procedure TProfile.miProfileClick(Sender: TObject);
var I,J,
X,Y,
W: integer;
Counts: array[1..512] of double;
begin
Screen.Cursor := crHourGlass;
if ProfileData <> nil then ProfileData.Free;
ProfileData := TSerie.Create(ProfileChart);
ProfileChart.AddSerie(ProfileData);
ProfileData.Clear;
ProfileChart.Clean;
ProfileChart.LeftAxis.Title.Caption := 'Counts';
ProfileChart.BottomAxis.Title.Caption := 'Profile';
W := StrToInt(ebWidth.Text);
X := Detector.XRes;
Y := Detector.YRes;
for I:=1 to 512 do Counts[I] := 0;
if rbXProfile.Checked then
begin
ProfileChart.Title.Text.Clear;
ProfileChart.Title.Text.Add('X Profile');
for I:=1 to W do
for J:=1 to X do
begin
Counts[J] := Counts[J] + Detector.Data[(I - 1 + Y div 2 - W div 2)
*2*X + J*2 - 1];
end;
for I:=1 to X do ProfileData.AddXY(I,Counts[I],'',clRed);
end
else
begin
ProfileChart.Title.Text.Clear;
ProfileChart.Title.Text.Add('Y Profile');
for I:=1 to W do
for J:=1 to Y do
begin
Counts[J] := Counts[J] + Detector.Data[(J - 1)*2*X + (I + X div 2 -
W div 2)*2 - 1]
end;
for I:=1 to Y do ProfileData.AddXY(I,Counts[I],'',clRed);
end;
Screen.Cursor := crDefault;
end;
end.