Decimal Separator
Здравствуйте все! Требуется написать процедуру программного переключения "делителя дробной и целой части" в настройках региональных параметров. (с запятой на точку и обратно). Может кто-то занимался этим вопросом, подскажите? Не могу понять, как добраться до этого делителя. ОС XP service pack 3. Спасибо, Михаил.
Задал вопрос, но наверно не понятно. Попробую так. Как из моей программы получить доступ к глобальной переменной "DecimalSeparator"? Необходимо из программы оперативно переключать разделитель с запятой на точку и обратно. Михаил.
Что-то уж больно низкая активность на сайте.Вот написАл процедуру, работает,но не изменяет значение переменной.
var
Registry: TRegistry;
msg: string;
s:Char;
begin
if (DecimalSeparator = ',') then
begin
Registry := TRegistry.Create;
Registry.RootKey :=HKEY_LOCAL_MACHINE;
Registry.OpenKey('SoftWare\Borland\DatabaseEngine\
Settings\System\Formats\Number\DECIMALSEPARATOR',true);
Registry.WriteString(DecimalSeparator, '.');
Registry.CloseKey;
Registry.Free;
end;
//проверка
s:= DecimalSeparator;
case s of
',': msg:='запятая';
'.': msg:='точка';
end;
ShowMessage(msg);
end;
end.
Решение подсказал модератор Ildvild с сайта DelphiExpert. Если менять в системе, то значение хранится в другом ключе реестра [HKCU]\Control Panel\International
Код:
Registry := TRegistry.Create;
Registry.RootKey := HKEY_CURRENT_USER;
Registry.OpenKey('\Control Panel\International', False);
Registry.WriteString('sDecimal', '.');
Registry.CloseKey;
Registry.Free;
end;
Спасибо всем.
Отправить комментарий