RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
TRegistry.DeleteKey Method

Removes a specified key and its associated data from the registry.

Pascal
function DeleteKey(const Key: string): Boolean;
C++
__fastcall Boolean DeleteKey(const AnsiString Key);

Call DeleteKey to remove a specified key and its associated data, if any, from the registry. Under Windows 95, if the key has subkeys, the subkeys and any associated data are also removed. Under Windows NT, subkeys must be explicitly deleted by separate calls to DeleteKey.  

DeleteKey returns true if key deletion is successful. On error, DeleteKey returns false.  

C++ Examples: 

 

/*
This example shows how to use the TRegistry class in order to
find, insert and delete Keys and Items into the Windows Registry.
This example uses two buttons: InsertToRegBtn and DeleteFromRegBtn,
for inserting and deleting the values.
*/
void __fastcall TForm2::InsertToRegBtnClick(TObject *Sender)
{
    TRegistry* reg = new TRegistry(KEY_READ);
    reg->RootKey = HKEY_LOCAL_MACHINE;

    if(!reg->KeyExists("Software\\MyCompanyName\\MyApplication\\"))
    {
        MessageDlg("Key not found! Created now.",
                    mtInformation, TMsgDlgButtons() << mbOK, 0);
    }
    reg->Access = KEY_WRITE;
    bool openResult = reg->OpenKey("Software\\MyCompanyName\\MyApplication\\", true);

    if(!openResult)
    {
        MessageDlg("Unable to create key! Exiting.",
                    mtError, TMsgDlgButtons() << mbOK, 0);
        return;
    }
    //checking if the values exist and inserting when neccesary

    if(!reg->KeyExists("Creation\ Date"))
    {
        TDateTime today = TDateTime::CurrentDateTime();
        reg->WriteDateTime("Creation\ Date", today);
    }

    if(!reg->KeyExists("Licenced\ To"))
    {
        reg->WriteString("Licenced\ To", "MySurname\ MyFirstName");
    }

    if(!reg->KeyExists("App\ Location"))
    {
        reg->WriteExpandString("App\ Location",
                                "%PROGRAMFILES%\\MyCompanyName\\MyApplication\\");
    }

    if(!reg->KeyExists("Projects\ Location"))
    {
        reg->WriteExpandString("Projects\ Location",
                                "%USERPROFILE%\\MyApplication\\Projects\\");
    }

    reg->CloseKey();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::DelFromRegBtnClick(TObject *Sender)
{
    //deleting the example registry entries
    TRegistry* reg = new TRegistry(KEY_WRITE);
    reg->RootKey = HKEY_LOCAL_MACHINE;

    reg->DeleteKey("Software\\MyCompanyName\\MyApplication");
    reg->DeleteKey("Software\\MyCompanyName");

    reg->CloseKey();
}
//---------------------------------------------------------------------------

 

Delphi Examples: 

{
This example shows how to use the TRegistry class in order to
find, insert and delete Keys and Items into the Windows Registry.
This example uses two buttons: InsertToRegBtn and DeleteFromRegBtn,
on a form, for inserting and deleting the values.
}
procedure TForm3.InsertToRegBtnClick(Sender: TObject);
var
  reg        : TRegistry;
  openResult : Boolean;
  today      : TDateTime;
begin
  reg := TRegistry.Create(KEY_READ);
  reg.RootKey := HKEY_LOCAL_MACHINE;

  if (not reg.KeyExists('Software\\MyCompanyName\\MyApplication\\')) then
    begin
      MessageDlg('Key not found! Created now.',
                            mtInformation, mbOKCancel, 0);
    end;
  reg.Access := KEY_WRITE;
  openResult := reg.OpenKey('Software\\MyCompanyName\\MyApplication\\',True);

  if not openResult = True then
    begin
      MessageDlg('Unable to create key! Exiting.',
                  mtError, mbOKCancel, 0);
      Exit();
    end;

  {checking if the values exist and inserting when neccesary}

  if not reg.KeyExists('Creation\ Date') then
    begin
      today := Now;
        reg.WriteDateTime('Creation\ Date', today);
    end;

  if not reg.KeyExists('Licenced\ To') then
    begin
        reg.WriteString('Licenced\ To', 'MySurname\ MyFirstName');
    end;

  if not reg.KeyExists('App\ Location') then
    begin
        reg.WriteExpandString('App\ Location',
                            '%PROGRAMFILES%\\MyCompanyName\\MyApplication\\');
    end;

  if not reg.KeyExists('Projects\ Location') then
    begin
        reg.WriteExpandString('Projects\ Location',
                            '%USERPROFILE%\\MyApplication\\Projects\\');
    end;

  reg.CloseKey();

end;

procedure TForm3.DeleteFromRegBtnClick(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := TRegistry.Create(KEY_WRITE);
  reg.RootKey := HKEY_LOCAL_MACHINE;

  reg.DeleteKey('Software\\MyCompanyName\\MyApplication');
  reg.DeleteKey('Software\\MyCompanyName');

  reg.CloseKey();
end;

 

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!