home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Doc / REGISTRY.INT < prev    next >
Text File  |  1999-08-11  |  7KB  |  146 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {       Copyright (c) 1995,99 Inprise Corporation       }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit Registry;
  11.  
  12. {$R-,T-,H+,X+}
  13.  
  14. interface
  15.  
  16. uses Windows, Classes, SysUtils, IniFiles;
  17.  
  18. type
  19.   ERegistryException = class(Exception);
  20.  
  21.   TRegKeyInfo = record
  22.     NumSubKeys: Integer;
  23.     MaxSubKeyLen: Integer;
  24.     NumValues: Integer;
  25.     MaxValueLen: Integer;
  26.     MaxDataLen: Integer;
  27.     FileTime: TFileTime;
  28.   end;
  29.  
  30.   TRegDataType = (rdUnknown, rdString, rdExpandString, rdInteger, rdBinary);
  31.  
  32.   TRegDataInfo = record
  33.     RegData: TRegDataType;
  34.     DataSize: Integer;
  35.   end;
  36.  
  37.   TRegistry = class(TObject)
  38.   protected
  39.     procedure ChangeKey(Value: HKey; const Path: string);
  40.     function GetBaseKey(Relative: Boolean): HKey;
  41.     function GetData(const Name: string; Buffer: Pointer;
  42.       BufSize: Integer; var RegData: TRegDataType): Integer;
  43.     function GetKey(const Key: string): HKEY;
  44.     procedure PutData(const Name: string; Buffer: Pointer; BufSize: Integer; RegData: TRegDataType);
  45.     procedure SetCurrentKey(Value: HKEY);
  46.   public
  47.     constructor Create; overload;
  48.     constructor Create(AAccess: LongWord); overload;
  49.     destructor Destroy; override;
  50.     procedure CloseKey;
  51.     function CreateKey(const Key: string): Boolean;
  52.     function DeleteKey(const Key: string): Boolean;
  53.     function DeleteValue(const Name: string): Boolean;
  54.     function GetDataInfo(const ValueName: string; var Value: TRegDataInfo): Boolean;
  55.     function GetDataSize(const ValueName: string): Integer;
  56.     function GetDataType(const ValueName: string): TRegDataType;
  57.     function GetKeyInfo(var Value: TRegKeyInfo): Boolean;
  58.     procedure GetKeyNames(Strings: TStrings);
  59.     procedure GetValueNames(Strings: TStrings);
  60.     function HasSubKeys: Boolean;
  61.     function KeyExists(const Key: string): Boolean;
  62.     function LoadKey(const Key, FileName: string): Boolean;
  63.     procedure MoveKey(const OldName, NewName: string; Delete: Boolean);
  64.     function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
  65.     function OpenKeyReadOnly(const Key: String): Boolean;
  66.     function ReadCurrency(const Name: string): Currency;
  67.     function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer): Integer;
  68.     function ReadBool(const Name: string): Boolean;
  69.     function ReadDate(const Name: string): TDateTime;
  70.     function ReadDateTime(const Name: string): TDateTime;
  71.     function ReadFloat(const Name: string): Double;
  72.     function ReadInteger(const Name: string): Integer;
  73.     function ReadString(const Name: string): string;
  74.     function ReadTime(const Name: string): TDateTime;
  75.     function RegistryConnect(const UNCName: string): Boolean;
  76.     procedure RenameValue(const OldName, NewName: string);
  77.     function ReplaceKey(const Key, FileName, BackUpFileName: string): Boolean;
  78.     function RestoreKey(const Key, FileName: string): Boolean;
  79.     function SaveKey(const Key, FileName: string): Boolean;
  80.     function UnLoadKey(const Key: string): Boolean;
  81.     function ValueExists(const Name: string): Boolean;
  82.     procedure WriteCurrency(const Name: string; Value: Currency);
  83.     procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
  84.     procedure WriteBool(const Name: string; Value: Boolean);
  85.     procedure WriteDate(const Name: string; Value: TDateTime);
  86.     procedure WriteDateTime(const Name: string; Value: TDateTime);
  87.     procedure WriteFloat(const Name: string; Value: Double);
  88.     procedure WriteInteger(const Name: string; Value: Integer);
  89.     procedure WriteString(const Name, Value: string);
  90.     procedure WriteExpandString(const Name, Value: string);
  91.     procedure WriteTime(const Name: string; Value: TDateTime);
  92.     property CurrentKey: HKEY;
  93.     property CurrentPath: string;
  94.     property LazyWrite: Boolean;
  95.     property RootKey: HKEY;
  96.     property Access: LongWord;
  97.   end;
  98.  
  99.   TRegIniFile = class(TRegistry)
  100.   public
  101.     constructor Create(const FileName: string); overload;
  102.     constructor Create(const FileName: string; AAccess: LongWord); overload;
  103.     function ReadString(const Section, Ident, Default: string): string;
  104.     function ReadInteger(const Section, Ident: string;
  105.       Default: Longint): Longint;
  106.     procedure WriteInteger(const Section, Ident: string; Value: Longint);
  107.     procedure WriteString(const Section, Ident, Value: String);
  108.     function ReadBool(const Section, Ident: string; Default: Boolean): Boolean;
  109.     procedure WriteBool(const Section, Ident: string; Value: Boolean);
  110.     procedure ReadSection(const Section: string; Strings: TStrings);
  111.     procedure ReadSections(Strings: TStrings);
  112.     procedure ReadSectionValues(const Section: string; Strings: TStrings);
  113.     procedure EraseSection(const Section: string);
  114.     procedure DeleteKey(const Section, Ident: String);
  115.     property FileName: string;
  116.   end;
  117.  
  118.   TRegistryIniFile = class(TCustomIniFile)
  119.   public
  120.     constructor Create(const FileName: string); overload;
  121.     constructor Create(const FileName: string; AAccess: LongWord); overload;
  122.     destructor Destroy; override;
  123.     function ReadDate(const Section, Name: string; Default: TDateTime): TDateTime; override;
  124.     function ReadDateTime(const Section, Name: string; Default: TDateTime): TDateTime; override;
  125.     function ReadInteger(const Section, Ident: string; Default: Longint): Longint; override;
  126.     function ReadFloat(const Section, Name: string; Default: Double): Double; override;
  127.     function ReadString(const Section, Ident, Default: string): string; override;
  128.     function ReadTime(const Section, Name: string; Default: TDateTime): TDateTime; override;
  129.     procedure WriteDate(const Section, Name: string; Value: TDateTime); override;
  130.     procedure WriteDateTime(const Section, Name: string; Value: TDateTime); override;
  131.     procedure WriteFloat(const Section, Name: string; Value: Double); override;
  132.     procedure WriteInteger(const Section, Ident: string; Value: Longint); override;
  133.     procedure WriteString(const Section, Ident, Value: String); override;
  134.     procedure WriteTime(const Section, Name: string; Value: TDateTime); override;
  135.     procedure ReadSection(const Section: string; Strings: TStrings); override;
  136.     procedure ReadSections(Strings: TStrings); override;
  137.     procedure ReadSectionValues(const Section: string; Strings: TStrings); override;
  138.     procedure EraseSection(const Section: string); override;
  139.     procedure DeleteKey(const Section, Ident: String); override;
  140.     procedure UpdateFile; override;
  141.  
  142.     property RegIniFile: TRegIniFile;
  143.   end;
  144.  
  145. implementation
  146.