Class TMainForm (unit SandMain)

Inherits from

TForm

Constructors



Functions

procedure AboutBtnClick(Sender: TObject);


procedure ColorBtnClick(Sender: TObject);


procedure ExitBtnClick(Sender: TObject);


procedure FormCreate(Sender: TObject);

--------------------- TMainForm ----------------------

procedure FormDestroy(Sender: TObject);

Get grid settings

procedure LoadBtnClick(Sender: TObject);


procedure PauseBtnClick(Sender: TObject);


procedure PileCheckBoxClick(Sender: TObject);

Save the pile itself

procedure SaveBtnClick(Sender: TObject);

Fill the pile

procedure StartBtnClick(Sender: TObject);


procedure TraceBtnClick(Sender: TObject);


procedure Statistics;


procedure SetExecuting(Exec: Boolean);

Size of grid fields in pixels

procedure StartSimulation;


procedure StopSimulation;

Destroy old pile

procedure ThreadDone(Sender: TObject);


procedure UpdateSettings;

Write grid settings

Properties

property Executing : Boolean

The sandpile

Events

Variables

AboutBtn : TButton;


AddedLabel : TLabel;


AddLabel : TLabel;


ColorBtn : TButton;


DeltaLostLabel : TLabel;


DeltaToppledLabel : TLabel;


ExitBtn : TButton;


GroupBox1 : TGroupBox;


GroupBox2 : TGroupBox;


GroupBox3 : TGroupBox;


Label1 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Label5 : TLabel;


Label7 : TLabel;


Label8 : TLabel;


Label9 : TLabel;


LoadBtn : TButton;


LostLabel : TLabel;


OpenDialog1 : TOpenDialog;


PauseBtn : TButton;


PileCheckBox : TCheckBox;


RoundsLabel : TLabel;


SaveBtn : TButton;


SaveDialog1 : TSaveDialog;


SizeLabel : TLabel;


StartBtn : TButton;


ToppledLabel : TLabel;


TraceBtn : TButton;


AddRect : Byte;

Size of sandpile as specified by user

Colors : array[0..6] of Longint;

# rounds simulation will run

MaxRounds : Longint;

Add grains inside this square

Pile : TPile;


PileSize : Byte;


ShowGrid : Boolean;

Palette

Simulation : TSimulation;


FExecuting : Boolean;


FieldSize : Byte;



Constructors


Functions


procedure AboutBtnClick(Sender: TObject);


procedure ColorBtnClick(Sender: TObject);


procedure ExitBtnClick(Sender: TObject);


procedure FormCreate(Sender: TObject);

--------------------- TMainForm ----------------------


procedure FormDestroy(Sender: TObject);

Get grid settings


procedure LoadBtnClick(Sender: TObject);


procedure PauseBtnClick(Sender: TObject);


procedure PileCheckBoxClick(Sender: TObject);

Save the pile itself


procedure SaveBtnClick(Sender: TObject);

Fill the pile


procedure StartBtnClick(Sender: TObject);


procedure TraceBtnClick(Sender: TObject);


procedure Statistics;


procedure SetExecuting(Exec: Boolean);

Size of grid fields in pixels


procedure StartSimulation;


procedure StopSimulation;

Destroy old pile


procedure ThreadDone(Sender: TObject);


procedure UpdateSettings;

Write grid settings


Properties


property Executing : Boolean

The sandpile


Events


Variables


AboutBtn : TButton;


AddedLabel : TLabel;


AddLabel : TLabel;


ColorBtn : TButton;


DeltaLostLabel : TLabel;


DeltaToppledLabel : TLabel;


ExitBtn : TButton;


GroupBox1 : TGroupBox;


GroupBox2 : TGroupBox;


GroupBox3 : TGroupBox;


Label1 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Label5 : TLabel;


Label7 : TLabel;


Label8 : TLabel;


Label9 : TLabel;


LoadBtn : TButton;


LostLabel : TLabel;


OpenDialog1 : TOpenDialog;


PauseBtn : TButton;


PileCheckBox : TCheckBox;


RoundsLabel : TLabel;


SaveBtn : TButton;


SaveDialog1 : TSaveDialog;


SizeLabel : TLabel;


StartBtn : TButton;


ToppledLabel : TLabel;


TraceBtn : TButton;


AddRect : Byte;

Size of sandpile as specified by user


Colors : array[0..6] of Longint;

# rounds simulation will run


MaxRounds : Longint;

Add grains inside this square


Pile : TPile;


PileSize : Byte;


ShowGrid : Boolean;

Palette


Simulation : TSimulation;


FExecuting : Boolean;


FieldSize : Byte;