Class TPhoneBook (unit Phnbook)

Inherits from

TForm

Constructors



Functions

procedure btnEditNumberClick(Sender: TObject);


procedure btnRemoveNumberClick(Sender: TObject);


procedure Close1Click(Sender: TObject);

PhoneChildren.

procedure cmdAddNumberClick(Sender: TObject);

PhoneInfo.

procedure CompanyIndexClick(Sender: TObject);


procedure edtAddress1Change(Sender: TObject);


procedure edtAddress1Exit(Sender: TObject);


procedure edtAddress2Change(Sender: TObject);


procedure edtAddress2Exit(Sender: TObject);


procedure edtCityChange(Sender: TObject);


procedure edtCityExit(Sender: TObject);


procedure edtCommentChange(Sender: TObject);


procedure edtCommentExit(Sender: TObject);


procedure edtCompanyChange(Sender: TObject);


procedure edtCompanyExit(Sender: TObject);


procedure edtEMailAddressChange(Sender: TObject);


procedure edtEMailAddressExit(Sender: TObject);


procedure edtFirstNameChange(Sender: TObject);


procedure edtFirstNameExit(Sender: TObject);


procedure edtLastNameChange(Sender: TObject);


procedure edtLastNameExit(Sender: TObject);

Make sure the most recently focused Phone Book is the one acted upon.

procedure edtLastNameKeyPress(Sender: TObject; var Key: Char);


procedure edtStateChange(Sender: TObject);


procedure edtStateExit(Sender: TObject);


procedure edtZipCodeChange(Sender: TObject);


procedure edtZipCodeExit(Sender: TObject);


procedure FirstNameIndexClick(Sender: TObject);


procedure FormActivate(Sender: TObject);


procedure FormClose(Sender: TObject; var Action: TCloseAction);


procedure FormCreate(Sender: TObject);

Make sure that focus is lost from last edited control.

procedure LastNameIndexClick(Sender: TObject);


procedure lbPhoneNumbersClick(Sender: TObject);

DeletedPhone.

procedure Tag1Click(Sender: TObject);


function AddPhoneNumber( PhoneInfo: TPhoneInfo ): Boolean;


procedure AddRecord;

Go through PhoneChanges and undo everything; must be down in reverse order of actual events.

procedure ClearPhoneInfo;


function CopyRecord( DestTableName: String; RecNo: Integer ): Integer;


function DeletePhoneNumber( PhoneInfo: TPhoneInfo ): Boolean;

ANSIString;

function DeleteRecord( RecNo: Integer ): Integer;

Add blank record

procedure GetBaseData;


procedure GetPhoneInfo;

Reset "Old" text values to allow for checking if changes were made.

procedure GetPhoneNumberList;


function ModifyPhoneNumber( PhoneInfo, OldPhoneInfo: TPhoneInfo ): Boolean;


procedure MoveFirst;


procedure MoveLast;

Make sure that focus is lost from last edited control.

procedure MoveNext;

Make sure that focus is lost from last edited control.

procedure MovePrevious;

Make sure that focus is lost from last edited control.

procedure UndoChanges;


procedure ClearPhoneChanges;


procedure ClearPhoneNumbers;


Properties

property CurrIndex : ANSIString


property EntryID : Integer


property TableName : String


Events

Variables

btnEditNumber : TBitBtn;


btnRemoveNumber : TBitBtn;


cmdAddNumber : TBitBtn;


CompanyIndex : TMenuItem;


edtAddress1 : TEdit;


edtAddress2 : TEdit;


edtCity : TEdit;


edtComment : TEdit;


edtCompany : TEdit;


edtEMailAddress : TEdit;


edtFirstName : TEdit;


edtLastName : TEdit;


edtState : TEdit;


edtZipCode : TMaskEdit;


FirstNameIndex : TMenuItem;


Label1 : TLabel;


Label10 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Label5 : TLabel;


Label6 : TLabel;


Label7 : TLabel;


Label8 : TLabel;


Label9 : TLabel;


LastNameIndex : TMenuItem;


lbPhoneNumbers : TListBox;


MainMenu1 : TMainMenu;


Sort1 : TMenuItem;


View1 : TMenuItem;


MarkedRecs : TStringList;


PhoneBase : Variant;

Public declarations

PhoneChanges : TList;


PhoneNumbers : Variant;


Address1Changed : Boolean;


Address2Changed : Boolean;


CityChanged : Boolean;


CommentChanged : Boolean;


CompanyChanged : Boolean;


EMailAddressChanged : Boolean;


FCurrIndex : ANSIString;


FEntryID : Integer;


FirstNameChanged : Boolean;


FTableName : String;


LastNameChanged : Boolean;


NewRecord : Boolean;


OldAddress1 : String[30];


OldAddress2 : String[30];


OldCity : String[30];


OldComment : String[60];


OldCompany : String[30];


OldEMailAddress : String[30];


OldFirstName : String[15];


OldLastName : String[20];

Private declarations

OldState : String[2];


OldZipCode : String[10];


StateChanged : Boolean;


ZipCodeChanged : Boolean;



Constructors


Functions


procedure btnEditNumberClick(Sender: TObject);


procedure btnRemoveNumberClick(Sender: TObject);


procedure Close1Click(Sender: TObject);

PhoneChildren.Delete(PhoneChildren.IndexOf( TableName )); {Replace table name as option from which to choose.


procedure cmdAddNumberClick(Sender: TObject);

PhoneInfo.Free; // Destroyed when Phone Numbers are cleared.


procedure CompanyIndexClick(Sender: TObject);


procedure edtAddress1Change(Sender: TObject);


procedure edtAddress1Exit(Sender: TObject);


procedure edtAddress2Change(Sender: TObject);


procedure edtAddress2Exit(Sender: TObject);


procedure edtCityChange(Sender: TObject);


procedure edtCityExit(Sender: TObject);


procedure edtCommentChange(Sender: TObject);


procedure edtCommentExit(Sender: TObject);


procedure edtCompanyChange(Sender: TObject);


procedure edtCompanyExit(Sender: TObject);


procedure edtEMailAddressChange(Sender: TObject);


procedure edtEMailAddressExit(Sender: TObject);


procedure edtFirstNameChange(Sender: TObject);


procedure edtFirstNameExit(Sender: TObject);


procedure edtLastNameChange(Sender: TObject);


procedure edtLastNameExit(Sender: TObject);

Make sure the most recently focused Phone Book is the one acted upon.


procedure edtLastNameKeyPress(Sender: TObject; var Key: Char);


procedure edtStateChange(Sender: TObject);


procedure edtStateExit(Sender: TObject);


procedure edtZipCodeChange(Sender: TObject);


procedure edtZipCodeExit(Sender: TObject);


procedure FirstNameIndexClick(Sender: TObject);


procedure FormActivate(Sender: TObject);


procedure FormClose(Sender: TObject; var Action: TCloseAction);


procedure FormCreate(Sender: TObject);

Make sure that focus is lost from last edited control.


procedure LastNameIndexClick(Sender: TObject);


procedure lbPhoneNumbersClick(Sender: TObject);

DeletedPhone.Free; // Destroyed when changes are cleared.


procedure Tag1Click(Sender: TObject);


function AddPhoneNumber( PhoneInfo: TPhoneInfo ): Boolean;


procedure AddRecord;

Go through PhoneChanges and undo everything; must be down in reverse order of actual events.


procedure ClearPhoneInfo;


function CopyRecord( DestTableName: String; RecNo: Integer ): Integer;


function DeletePhoneNumber( PhoneInfo: TPhoneInfo ): Boolean;

ANSIString;


function DeleteRecord( RecNo: Integer ): Integer;

Add blank record


procedure GetBaseData;


procedure GetPhoneInfo;

Reset "Old" text values to allow for checking if changes were made.


procedure GetPhoneNumberList;


function ModifyPhoneNumber( PhoneInfo, OldPhoneInfo: TPhoneInfo ): Boolean;


procedure MoveFirst;


procedure MoveLast;

Make sure that focus is lost from last edited control.


procedure MoveNext;

Make sure that focus is lost from last edited control.


procedure MovePrevious;

Make sure that focus is lost from last edited control.


procedure UndoChanges;


procedure ClearPhoneChanges;


procedure ClearPhoneNumbers;


Properties


property CurrIndex : ANSIString


property EntryID : Integer


property TableName : String


Events


Variables


btnEditNumber : TBitBtn;


btnRemoveNumber : TBitBtn;


cmdAddNumber : TBitBtn;


CompanyIndex : TMenuItem;


edtAddress1 : TEdit;


edtAddress2 : TEdit;


edtCity : TEdit;


edtComment : TEdit;


edtCompany : TEdit;


edtEMailAddress : TEdit;


edtFirstName : TEdit;


edtLastName : TEdit;


edtState : TEdit;


edtZipCode : TMaskEdit;


FirstNameIndex : TMenuItem;


Label1 : TLabel;


Label10 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Label5 : TLabel;


Label6 : TLabel;


Label7 : TLabel;


Label8 : TLabel;


Label9 : TLabel;


LastNameIndex : TMenuItem;


lbPhoneNumbers : TListBox;


MainMenu1 : TMainMenu;


Sort1 : TMenuItem;


View1 : TMenuItem;


MarkedRecs : TStringList;


PhoneBase : Variant;

Public declarations


PhoneChanges : TList;


PhoneNumbers : Variant;


Address1Changed : Boolean;


Address2Changed : Boolean;


CityChanged : Boolean;


CommentChanged : Boolean;


CompanyChanged : Boolean;


EMailAddressChanged : Boolean;


FCurrIndex : ANSIString;


FEntryID : Integer;


FirstNameChanged : Boolean;


FTableName : String;


LastNameChanged : Boolean;


NewRecord : Boolean;


OldAddress1 : String[30];


OldAddress2 : String[30];


OldCity : String[30];


OldComment : String[60];


OldCompany : String[30];


OldEMailAddress : String[30];


OldFirstName : String[15];


OldLastName : String[20];

Private declarations


OldState : String[2];


OldZipCode : String[10];


StateChanged : Boolean;


ZipCodeChanged : Boolean;