Class TMainForm (unit Mainfrm)

Inherits from

TForm

Constructors



Functions

procedure AddBtnClick(Sender: TObject);

Synchronize listbox.

procedure DelBtnClick(Sender: TObject);

this will add sample to FSamples and also dispatch OnChange

procedure EditBtnClick(Sender: TObject);


procedure Exit1Click(Sender: TObject);


procedure FormCreate(Sender: TObject);


procedure FormDestroy(Sender: TObject);

Since FSample owns it's items, the TSample at Index is also free-ed

procedure HeaderSized(Sender: TObject; ASection, AWidth: Integer);

use owner draw style to draw sample on listboxes canvas, note that the ListBox.

procedure ListBoxDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);


procedure NewBtnClick(Sender: TObject);

See TSampleList.

procedure OpenBtnClick(Sender: TObject);

Just free the samples, not the sample list

procedure SamplesChange(Sender: TObject);

put back the edited and maybe changed sample, this will re-order it and notify the GUI through OnChange

procedure SaveBtnClick(Sender: TObject);

since the BufFileStream filter owns it's base stream.

procedure SortOnChange(Sender: TObject);

do not forget to clean - up

function EditSample(Sample: TSample): Boolean;

wire the OnChange event to synchronize the GUI with the sample list

Properties

Events

Variables

Add1 : TMenuItem;


AddBtn : TSpeedButton;


Change1 : TMenuItem;


DelBtn : TSpeedButton;


Delete1 : TMenuItem;


Edit1 : TMenuItem;


EditBtn : TSpeedButton;


Exit1 : TMenuItem;


File1 : TMenuItem;


Header : THeader;


ListBox : TListBox;


MainMenu : TMainMenu;


N1 : TMenuItem;


New1 : TMenuItem;


NewBtn : TSpeedButton;


Open1 : TMenuItem;


OpenBtn : TSpeedButton;


OpenDialog : TOpenDialog;


Save1 : TMenuItem;


SaveBtn : TSpeedButton;


SaveDialog : TSaveDialog;


SortNameBtn : TSpeedButton;


SortValueBtn : TSpeedButton;


Toolbar : TPanel;


FSamples : TSampleList;



Constructors


Functions


procedure AddBtnClick(Sender: TObject);

Synchronize listbox.items with number of items in list, simply add an empty string to the listbox. routine could be optimized e.g. by using a listbox which does not store it's strings or using the Delphi 2.0 ListViewer class


procedure DelBtnClick(Sender: TObject);

this will add sample to FSamples and also dispatch OnChange


procedure EditBtnClick(Sender: TObject);


procedure Exit1Click(Sender: TObject);


procedure FormCreate(Sender: TObject);


procedure FormDestroy(Sender: TObject);

Since FSample owns it's items, the TSample at Index is also free-ed


procedure HeaderSized(Sender: TObject; ASection, AWidth: Integer);

use owner draw style to draw sample on listboxes canvas, note that the ListBox.Items property is ignored


procedure ListBoxDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);


procedure NewBtnClick(Sender: TObject);

See TSampleList.Compare for SortOn property


procedure OpenBtnClick(Sender: TObject);

Just free the samples, not the sample list


procedure SamplesChange(Sender: TObject);

put back the edited and maybe changed sample, this will re-order it and notify the GUI through OnChange


procedure SaveBtnClick(Sender: TObject);

since the BufFileStream filter owns it's base stream. it will automatically free it's filestream


procedure SortOnChange(Sender: TObject);

do not forget to clean - up


function EditSample(Sample: TSample): Boolean;

wire the OnChange event to synchronize the GUI with the sample list


Properties


Events


Variables


Add1 : TMenuItem;


AddBtn : TSpeedButton;


Change1 : TMenuItem;


DelBtn : TSpeedButton;


Delete1 : TMenuItem;


Edit1 : TMenuItem;


EditBtn : TSpeedButton;


Exit1 : TMenuItem;


File1 : TMenuItem;


Header : THeader;


ListBox : TListBox;


MainMenu : TMainMenu;


N1 : TMenuItem;


New1 : TMenuItem;


NewBtn : TSpeedButton;


Open1 : TMenuItem;


OpenBtn : TSpeedButton;


OpenDialog : TOpenDialog;


Save1 : TMenuItem;


SaveBtn : TSpeedButton;


SaveDialog : TSaveDialog;


SortNameBtn : TSpeedButton;


SortValueBtn : TSpeedButton;


Toolbar : TPanel;


FSamples : TSampleList;