I have one Delphi XE2 project to work with a registry key. Therefore, I defined the following codes:
procedure TMainForm.BitBtn01Click(Sender: TObject); var RegistryEntry: TRegistry; begin RegistryEntry := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY); RegistryEntry.RootKey:= HKEY_LOCAL_MACHINE; if (not RegistryEntry.KeyExists('Software\MyCompanyName\MyName\')) then begin RegistryEntry.Access:= KEY_WRITE or KEY_WOW64_64KEY; RegistryEntry.OpenKey('Software\MyCompanyName\MyName\',True); RegistryEntry.WriteString('', 'MyFirstProject'); end else begin Memo01.Lines.Add(RegistryEntry.ReadString('(Default)')); //Not Working Memo01.Lines.Add(RegistryEntry.ReadString('')); //Not Working Memo01.Lines.Add(RegistryEntry.ReadString('@')); //Not Working end; RegistryEntry.CloseKey(); RegistryEntry.Free; end;
My requirement is to check the default value of "MyName" and show in Memo01. But nothing happens. So I tried another way:
procedure TMainForm.BitBtn01Click(Sender: TObject); var RegistryEntry: TRegistry; RegistryString: string; begin RegistryEntry := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY); RegistryEntry.RootKey:= HKEY_LOCAL_MACHINE; if (not RegistryEntry.KeyExists('Software\MyCompanyName\MyName\')) then begin RegistryEntry.Access:= KEY_WRITE or KEY_WOW64_64KEY; RegistryEntry.OpenKey('Software\MyCompanyName\MyName\',True); RegistryEntry.WriteString('', 'MyFirstProject'); end else begin RegistryString := RegistryEntry.ReadString('(Default)'); //Not Working RegistryString := RegistryEntry.ReadString(''); //Not Working RegistryString := RegistryEntry.ReadString('@'); //Not Working Memo01.Lines.Add(RegistryString); end; RegistryEntry.CloseKey(); RegistryEntry.Free; end;
But it also does not work.
source share