![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разделитель дробной части [D5]
Sour © (2002-12-17 00:34:00)Как получить и изменить разделитель дробной части числа, установленной в Windows. Т.е. надо программно проверить является ли разделитель точкой, если нет, то сменить его на точку?
Моджахед очень пьян (2002-12-17 02:16:00) [1]А вы, народ, предыдущие посты читаете, а?
С уважением,
Моджахед горизонтальный
Спрашивающий (2002-12-17 01:44:00) [2]На сколько я правильно понял требуется не изменять системные настройки а чтобы при вводе пользователем точки или запятой в проге всегда был результат разделитель системы. Это делается так:
If (Key=".") or (Key=",") Then Key:=DecimalSeparator;
Моджахед (2002-12-17 00:55:00) [3]Вот и опоздал с отсылкой. Но теперь ты в курсе.Но помни об NT (LOCAL_MACHINE) и помни о злобных юзерах, которые до тебя-таки доберутся %)
Моджахед (2002-12-17 00:51:00) [4]А! Вспомнил. Если надобно поменять значение для ВСЕЙ СИСТЕМЫ (но учти, за это пользователи твоей проги тебе рожу набьют), то оно хранится HKEY_CURRENTUSER\ControlPanel\International\sDecimal (для текущего юзера, конечно). Ну и в LOCAL_MACHINE для всех юзеров.
Короче, меняй, но помни о последствиях.
AndrewVolkov (2002-12-17 00:50:00) [5]Var
RegIni:TRegIniFile;
ch:string;
begin
try
begin
RegIni:=TRegIniFile.Create("Control panel");
RegIni.RootKey:=HKEY_CURRENT_USER;
ch:=Regini.ReadString("International","sDecimal","");
regIni.free;
end
except
end;
end;
Я лично проверял так
Моджахед (2002-12-17 00:47:00) [6]Не помню сейчас как именно извенить в НАСТРОЙКАХ ВИНДОВС, но если определить в своей программе и там же изменить, то переменная DecimalSeparator. Ее начальное значение берется из виндовых настроек. А там делай с ней что хочешь. Только смотри, она вилияет на трактование чисел в функциях StrToFloat и проч.