| Class TMainForm (unit Mainfrm) |
TForm
| Constructors |
| Functions |
procedure AddBtnClick(Sender: TObject);
procedure DelBtnClick(Sender: TObject);
procedure EditBtnClick(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure HeaderSized(Sender: TObject; ASection, AWidth: Integer);
procedure ListBoxDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
procedure NewBtnClick(Sender: TObject);
procedure OpenBtnClick(Sender: TObject);
procedure SamplesChange(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure SortOnChange(Sender: TObject);
function EditSample(Sample: TSample): Boolean;| 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;