Начиная с версии 3.3.8.0 Hex() воспринимает тип Double и возвращает его шестнадцатеричное представление. Но, по непонятным мне причинам, RegRead() возвращает в случае REG_DWORD именно вещественный тип. Отсюда и непонятки. В этом случае все правильно, нужно привести переменную к целому типу - Int().