MultiData Component set

1. FEATURES
2.LICENSE
3.INSTALLATION
4.COMPONENTS


1. FEATURES
- Attach any data to Exe file/ Registry using FlatfileDB and ExeData components
- Read data with it's name in exe itself and it never make any temporary file.
- Data independent Memory Database/File Database
- Usuage : SingleEXE intallation, MultiMedia File with data in Exe, End user register file..

2.LICENSE
- Can not be used in commercial purpose application/components
- Can not be distributed with other components using this components

3.INSTALLATION
- Open component/install package in IDE
- install EXEDATA.DPK 

4.COMPONENTS

TmtExeData - Attach flatdb data to EXE file
-------------------

{attach FlatDB to AExeName file and save it to AOutExe file} 
     procedure AddData(AExeName,AOutExe:string);

{Read FlatDB data from AExeName file
AExeName can be self}
     function ExtractData(AExename:string):boolean;

{remove data in AExename and save original data to AOutExe file}
     procedure RemoveData(AExeName,AOutExe:string);

{TmtFlatDB component to write/read data in Exefile}
    property FlatDB:TmtFlatDB


TmtFlatDB - Memory database
----------------

   function LoadFromBlobField(Fld:TField):boolean;

   procedure SaveToBlobField(fld:TField);

   function LoadFromFile(filename:string):boolean;

   procedure SaveToFile(filename:string);

   function LoadFromStream(ms:TStream):boolean;

   procedure SaveToStream(ms:TStream);

   function AddItem(sName:string):TmtItem;

   function ItemByName(sName:string):TmtItem;

   function Find(sName:string):boolean;

   procedure Delete(sName:string);

   procedure DeleteIndex(index:integer);

   function IndexOf(sName:string):integer;

   function At(index:integer):TmtItem;

   procedure GetNameList(List:TStrings);

   procedure Clear;

   function Count:integer;

   procedure Navigate;

    property AutoAppend:boolean read FAutoAppend write FAutoAppend;

    property OnAfterAppend:TmtNotifyEvent

    property OnNavigate:TmtNotifyEvent

  end;


TmtItem - Record object in TmtFlatDB
-----------

{Data type which can be saved  as a record}
TmtDataType
       mtdString, 
       mtdInteger,
       mtdDateTime,
       mtdReal,
       mtdDouble,
       mtdExtended, 
       mtdBoolean, 
       mtdBitmap, 
       mtdData,   
       mtdFlatDB)

{Addition information }
       Itemtext:string;
       Tag:integer;

{Copy other data}
       procedure Assign(t:TmtItem);

{read/write record from/to stream}
       procedure SaveToStream(ms:TStream);
       function LoadFromStream(ms:TStream):boolean;

{Data size}
       function DataSize:integer;

{Unique name of record
Every record MUST have unique name }
       property ItemName:string


       property DataType:TmtDataType

{Basic data streaming}
       property AsString:String
       property AsInteger :integer
       property AsDateTime :TDateTime    
       property AsReal:Real
       property AsExtended:Extended 
       property AsDOuble:Double read GetDOuble write SetDouble;
       property AsBoolean: Boolean read GetBoolean write SetBoolean;

{Expanded data streaming}
       function ReadFlatDB(f:TmtFlatDB):boolean;
       procedure WriteFlatDB(f:TmtFlatDB);
       procedure ReadStream(ms:TStream);
       procedure WriteStream(ms:TStream);
       procedure ReadFile(f:string);
       procedure WriteFile(f:string);
       function ReadBitmap(b:TBitmap):boolean;
       procedure WriteBitmap(b:TBitmap);
       function ReadData(var p):boolean;
       procedure WriteData(var P; iSize:integer);


TmtReader
----------------
This is read only flatdb.
Same as TmtFlatDB but this component load only one record to save memory resource
---------------

   function Open(filename:string):boolean;
   procedure Close;

   function ItemByName(sName:string):TmtItem;

   function Find(sName:string):boolean;

   function IndexOf(sName:string):integer;

   function At(index:integer):TmtItem;

   procedure GetNameList(List:TStrings);

   function Count:integer;

   procedure Navigate;
   property FileName:string read FFileName;

    property OnNavigate:TmtNotifyEvent
    property Active:boolean 


TmtRegData - Save/Read flatdb to/from registry
------------------
   TmtRegKey = (mrkCurrentUser, //HKEY_LOCAL_MACHINE
               mrkLocalMachine); //HKEY_CURRENT_USER

       procedure SaveToRegistry;

       function LoadFromRegistry:boolean;

       property FlatDB:TmtFlatDB 


       property Key : TmtRegKey

       property Path: string

       property RegName:string