Die Konstruktoren von TRegistry hast du dir angeschaut?
Delphi-Quellcode:
constructor TRegistry.Create;
begin
RootKey := HKEY_CURRENT_USER;
FAccess := KEY_ALL_ACCESS;
LazyWrite := True;
end;
constructor TRegistry.Create(AAccess: LongWord);
begin
Create;
FAccess := AAccess;
end;
Abgesehen davon, das man im überladenden Konstruktor nicht den Zugriffsschlüssel setzt, ist es kein Wunder das da eine W1012 kommt.
Mit aktivierten Range Check Error hättest du so auch eine
Exception erhalten, da
Access als LongWord definiert ist.
Delphi-Quellcode:
HKEY = type UINT_PTR;
...
const
{ Reserved Key Handles. }
...
{$EXTERNALSYM HKEY_CURRENT_USER}
HKEY_CURRENT_USER = HKEY(Integer($80000001));