Results 1 to 9 of 9

Thread: NLDSimpleRegistry

  1. #1

    NLDSimpleRegistry

    ------------
    De sources van NLDDanyUtils zijn te vinden in:
    ftp://ftp.nldelphi.com/public/OpenSo.../NLDDanyUtils/
    ------------

    Maakt registry access "gemakkelijker". Deze unit levert de belangrijkste functies uit de 'TRegistry' unit, maar met volgende verschillen:

    1. 'Openen' (open) en 'sluiten' (close) van registrysleutels (registrykeys) hoeft niet meer.

    2. Iedere functie heeft een extra parameter: de 'sleutel' (key). Deze sleutel wordt automatisch geopend en gesloten bij het uitvoeren van de funtie. Die 'sleutel' is altijd relatief tegenover de 'root' sleutel, het volledige pad moet dus opgegeven worden.

    3. Alle 'lees' (read) functies hebben nog een extra parameter: de 'verstek' (default) waarde. Dit is de waarde die de functie teruggeeft als de sleutel niet bestaat of de waarde in de sleutel niet bestaat.

    4. De 'schrijf' (write) functies geven nu een 'boolean' terug, 'true' als het gelukt is, 'false' als het mislukt is. Ingeval van mislukking wordt geen 'exception' gegenereerd.

    5. Additioneel kan TSimpleRegistry de inhoud van een "TStrings" schrijven en lezen naar en uit de registry.

    6. Ook het lezen en schrijven van zgn "MULTI-SZ" registry waarden is toegevoegd.

    De interface:
    Code:
    interface
    
    uses Windows, Registry, Classes;
    
    type
      TSimpleRegistry =
        class
      private
        Reg: TRegistry;
        function GetRoot: HKEY;
        procedure SetRoot(r: HKEY);
        function OpenForRead(const Key, Name: string): Boolean;
      public
        constructor Create; Overload;
        constructor Create(AAccess:LongWord); overload;
        destructor Destroy; override;
    
        // Root Key
        property RootKey: HKEY read GetRoot write SetRoot;
    
        // Read functions
        function ReadString(const Key, Name, Default: string): string;
        function ReadBool(const Key, Name: string; Default: Boolean): Boolean;
        function ReadInteger(const Key, Name: string; Default: Integer): Integer;
        function ReadBinaryData(const Key, Name: string; var Buffer; BufSize: Integer): Integer;
        function ReadCurrency(const Key, Name: string; Default: Currency): Currency;
        function ReadDate(const Key, Name: string; Default: TDateTime): TDateTime;
        function ReadDateTime(const Key, Name: string; Default: TDateTime): TDateTime;
        function ReadFloat(const Key, Name: string; Default: Double): Double;
        function ReadTime(const Key, Name: string; Default: TDateTime): TDateTime;
        procedure ReadTStrings(const Key, Name: string; Texts: TStrings);
        procedure ReadMultiString(const Key, Name: string; Texts: TStrings);
        function ReadWideString(const Key, Name: string; Default: WideString = ''): WideString;
    
        // Write functions
        function WriteString(const Key, Name, value: string): Boolean;
        function WriteExpandString(const Key, Name, value: string): Boolean;
        function WriteBool(const Key, Name: string; value: Boolean): Boolean;
        function WriteInteger(const Key, Name: string; value: Integer): Boolean;
        function WriteBinaryData(const Key, Name: string; var Buffer; BufSize: Integer): Boolean;
        function WriteCurrency(const Key, Name: string; value: Currency): Boolean;
        function WriteDate(const Key, Name: string; value: TDateTime): Boolean;
        function WriteDateTime(const Key, Name: string; value: TDateTime): Boolean;
        function WriteFloat(const Key, Name: string; value: Double): Boolean;
        function WriteTime(const Key, Name: string; value: TDateTime): Boolean;
        function WriteTStrings(const Key, Name: string; Texts: TStrings): Boolean;
        function WriteMultiString(const Key, Name: string; Texts: TStrings): boolean;
        function WriteWideString(const Key, Name: string; value: WideString): Boolean;
    
        // Miscellaneous functions
        function KeyExists(const Key: string): Boolean;
        function ValueExists(const Key, Name: string): Boolean;
        function DeleteKey(const Key: string): Boolean;
        function DeleteValue(const Key, Name: string): Boolean;
        function CreateKey(const Key: string): Boolean;
        function GetDataInfo(const Key, Name: string; var value: TRegDataInfo): Boolean;
        function GetDataSize(const Key, Name: string): Integer;
        function GetDataType(const Key, Name: string): TRegDataType;
        function GetKeyInfo(const Key: string; var value: TRegKeyInfo): Boolean;
        function GetKeyNames(const Key: string; Strings: TStrings): Boolean;
        function GetValueNames(const Key: string; Strings: TStrings): Boolean;
        function HasSubKeys(const Key: string): Boolean;
        function RenameValue(const Key, OldName, NewName: string): Boolean;
      end;
    Last edited by Dany; 23-Nov-06 at 19:20.

  2. #2
    Procedures voor het lezen en schrijven van zogenaamde "MULTI-SZ" strings:
    Code:
    procedure ReadMultiString(const Key, Name: string; Texts: TStrings);
    function WriteMultiString(const Key, Name: string; Texts: TStrings): boolean;

  3. #3
    Misschien kun je deze ook wel verwerken in je utils.

    [edit].. of euhm.. is dat hetzelfde?
    1+1=b

  4. #4
    Hoi GolezTrol,

    Nee, ik denk niet dat WideStrings en "MULTI-SZ" strings hetzelfde zijn.
    En ja, als ik mag dan zou ik jou WideString code graag ook willen opnemen in "SimpleRegistry".

    Quote Originally Posted by GolezTrol
    Misschien kun je deze ook wel verwerken in je utils.

    [edit].. of euhm.. is dat hetzelfde?

  5. #5
    Het is inderdaad niet hetzelfde. MULTI_SZ is volgens mij een lijst van strings. De WideString oplossing is maar één string. Ik weet nieteens of het heel gebruikelijk is om WideStrings op deze manier op te slaan, maar volgens mij wel. Ik heb deze functies gemaakt omdat ik wat instellingen in Office/Outlook 2003 moest wijzigen. Dit waren widestrings die op deze manier werde weggeschreven.

    Enneh. Ga je gang, gebruik ze gerust.
    1+1=b

  6. #6
    Hoi,

    De routines om widestrings te lezen en te schrijven zijn toegevoegd. Ze komen initieel van GolezTrol (zie vorige post), en zijn (heel) lichtjes herwerkt om te passen in de TSimpleRegistry opzet.

    De interface:
    Code:
    function ReadWideString(const Key, Name: string; Default: WideString = ''): WideString;
    function WriteWideString(const Key, Name: string; value: WideString): Boolean;
    Bedankt voor het mogen gebruiken van jouw code Goleztrol!

  7. #7
    Misschien heb je nog wat aan deze? Wel even uitzoeken waar die source vandaan komt, want ik heb 'm niet geschreven
    1+1=b

  8. #8
    Toegevoegd: een overloaded versie voor "TSimpleRegistry.Create":
    Code:
    constructor Create; Overload;
    constructor Create(AAccess:LongWord); overload;
    Zelfde betekens als in TRegistry".

  9. #9
    Vriendelijke groeten,
    Dany

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •