Rat, при чтении строкового параметра ошибки и не будет т.к. значение отсутствие значения это уже есть какая-то строка, а для числа это недопустимое значение, вот он и ругается.
Я делал так:
Код:
function IntKeyIsPresent(rKey:HKEY; Path, Name:string; var KeyValue:integer):boolean;
begin
Result:=False;
try
R:=TRegistry.Create;
R.RootKey:=rKey;
R.OpenKey(Path,True);
if R.KeyExists(Name)=True
then
begin
KeyValue:=R.ReadInteger(Name);
Result:=True;
end
else KeyValue:=0;
R.CloseKey;
Except R.Free;
end;
end;