Class TMainForm (unit Mainfrm) |
Inherits from
TForm
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
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;
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
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;