TbDbase.dcu - TTbDbase : A component set which uses a dBase III+ file
v 0.95                   for multiple concurrent user access.
                         Supports memo fields. Don't support indexes yet.
Delphi 2,3               Shareware (commercial fee is USD 20.-)
version                  Register on http://www.shareit.com/programs/101780.htm

Author:  Horacio Jamilis
E-Mail:  [email protected]
WWW:     http://members.xoom.com/t_byte/
     or  http://www.geocities.com/SiliconValley/Sector/2369/
Copyright (C) 1998, Terabyte Computacion

===========================================================================
I have many useful components writen. TTbDBF is just one of them.
The others are...
 - TbDBF   ... a dBase III+ files accessing component set for Delphi 3.
               This is data aware compatible. Has not support for
               multiple concurrent access or memo fields yet.
 - TbPrint ... a Printing and reporting component set that makes VERY easy
               and VERY fast to make database reports (less than a minute).
               It can print all you want (but only text, no graphics yet), in
               Windows (using a printer driver) or Fast modes (writing directly
               to the printer port, using the device features).
               So, prints very fast.
 - TbLang  ... a MultiLanguage system. With it you could make your programs
               multilingual VERY easy. You could edit all the text strings while
               you are programing (in the Delphi IDE) or later with a stand alone
               aplication. It supports UserStrings (used in the code for messages)
               and Dialogs (MessageDlg, InputBox and InputQuery) with translated
               caption and buttons. You could use all the languages you wish.
 - LinkEdit .. Just an TEdit with an elipsis button in it's right side only when
               the edit is active (with cursor), and alignment options.
Enjoy Them.
===========================================================================
Now TbDbase is shareware.
I spend many hours developing this high cuality components, and nobody helps.
Send you emails to [email protected]
Visit us in http://www.geocities.com/SiliconValley/Sector/2369/
or          http://member.xoom.com/t_byte/
===========================================================================
What comes:
 - Filtering capabilities
 - A SkeepDeleted property to avoid view of deleted records
 - More data aware like components
 - Index files support (probably dbase iii+ NDX and clipper NTX)
===========================================================================
v 1.0 (31/7/98)
- First public release.
===========================================================================
TbDbase component user guide
----------------------------
TbDbase is a component that let's you access dBase III+ files without BDE.
It doesn't support data aware component but it has it's owns data aware like
components.

TTbField class
--------------
Public variables
 Name : string;     ... name of the field
 FieldType : char;  ... type of the field. C=Character N=Numeric D=Date L=Logic M=Memo
 Width : byte;      ... positions used in file by the field. Used in character or numeric fields.
 Decimals : byte;   ... number of decimals. Only used in numeric fields.

Properties
 Value : variant;   ... gives you the value in the corresponding type.
                        C=string N=double D=TDateTime L=boolean M=string
 Text : string;     ... returns the string representation of the field value.

TTbDbase class
--------------

Properties:
 Field[Index:integer]:TTbField... returns the field in the index position. (readonly)
 Position  : integer;         ... gets or sets the number of the current record in the file.
 TableName : string;          ... is the name of the dBase file.
 Active    : boolean;         ... gets or sets the table state. If it is true, the the table is opened,
               if false, the table is closed. Setting it to true, you could open the file.
 Locked    : boolean;         ... is true if the table is in edit mode. (readonly)
 EOF       : boolean;         ... returns true if you pass over the end of the file.
 BOF       : boolean;         ... returns true if you pass over the begining of the file.
 About     : TTbAboutBox      ... shows the about box for the component at design time.

Methods:
 procedure Refresh;           ... updates the data aware like components.
 procedure Pack;              ... compact the database deleting permanently the deleted records.
 function  Open:smallint;     ... opens the file. Is the same as Active := True;
                                  return STD_ERROR_CODES
 function  Close:smallint;    ... closes the file. Is the same as Active := False;
                                  return STD_ERROR_CODES
 function  Deleted:boolean;   ... returns true if the current record is deleted.
 function  Undelete:boolean;  ... removes the deleted mark from the current record.
                                  returns true if could do this.
 function  Skip(positions:integer):smallint;
                              ... sets the current record positions records from the current one.
                                  Returns  STD_ERR_CODES. Skip(1) is the same as Next. Skip(-1) is
                                  the same as Prior;
 function  First:smallint;    ... goes to the first record of the file.
 function  Last:smallint;     ... goes to the last record of the file.
 function  Next:smallint;     ... goes to the next record in the file.
 function  Prior:smallint;    ... goes to the previous record in the file.
 function  RecCount:integer;  ... returns the number of records in the file.
 function  FieldByName(Name:string):TTbField;
                              ... returns the field of the given name.
 function  Edit:boolean;      ... set the table in edit mode. Put the data aware like components
                                  in edit mode.
 function  Cancel:boolean;    ... cancel the edit or append mode.
 function  Post:boolean;      ... saves the information of the current record and goes out of the
                                  edit or append mode.
 function  Append:boolean;    ... sets the table to the append mode to add a new record to the
                                  file. Puts the data aware like component in edit mode.

Events: works as expected! :-)
 AfterCancel
 AfterClose
 AfterDelete
 AfterEdit
 AfterInsert
 AfterOpen
 AfterPost
 BeforeCancel
 BeforeClose
 BeforeDelete
 BeforeEdit
 BeforeInsert
 BeforeOpen
 BeforePost