3 / 3 / 1
Регистрация: 16.02.2011
Сообщений: 157
1

как программно поменять настройки региональных параметров?

11.08.2011, 09:40. Показов 5761. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
подскажите как программно изменить в настройках windows (настройки региональных параметров) точку на запяту, и при закрытии программы вернуть как было. Ввожу я это в поле DBGridEh. Просто менять точку на запятую не вариант (хотя такое уже стоит) просто скажем так на компьютере еще есть программа которая меняет эти настройки и при Ctrl+V тоже ерунда происходит либо вооще не вводит данные если есть точка либо просто удаляет разделитель.

Добавлено через 1 час 40 минут
Выражусь конкретнее и точнее.
вот здесь на некоторых Windows стоит точка вместо запятой как поменять эту настройку на запятую, программно http://rghost.ru/17555451/image.png

Добавлено через 39 минут
Так понял проблемма не в этом сам DBGridEh тупит он не дает ввести ничего.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2011, 09:40
Ответы с готовыми решениями:

как программно поменять разрешение экрана?
Подскажите пожалуйста, как программно поменять разрешение экрана? Просто не на всех машинах...

Как программно получить список методов класса, параметров этих методов и типов этих параметров?
можно для паблишед методов и свойств кстати. Суть в том, что делфи при вводе точки после имени...

Как поменять ячейку в программно-созданном TStringGrid?
Есть динамически созданный массив TStringGrid. В OnSelectCell прописана своя процедура. В этой...

Как программно поменять значение переменной в процедуре
Здравствуйте Уважаемые. Подскажите, как программно из одной формы поменять значение переменной, ...

4
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
11.08.2011, 12:26 2
А для чего это нужно? Чтобы в своей программе не путаться что тыкать? Чтобы была точка или запятая как разделитель? Не проще ли в программе поставить проверку, если введено то, то вставлять это, если другое то некое вставить
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
11.08.2011, 12:43 3
допустим в региональных настройках разделитель целой и дробной части, это запятая. тогда делаешь примерно так:
Delphi
1
2
3
4
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = '.' then Key:= DecimalSeparator;
end;
ну, или наоборот
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.08.2011, 12:48 4
Delphi
1
if Key in[ '.',','] then Key:= DecimalSeparator;
0
3217 / 2360 / 540
Регистрация: 11.09.2009
Сообщений: 8,597
12.08.2011, 03:44 5
Чтобы программа могла работать со своими файлами данных на любом компьютере, независимо от настроек системы, можно сделать так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
  SavedDateSeparator, SavedTimeSeparator: Char;
  SavedShortDateFormat: string;
...
 
procedure TForm.FormCreate(Sender: TObject);
...
// На время работы программы
// временно меняем глобальные настройки формата даты:
SavedDateSeparator := DateSeparator;
SavedTimeSeparator := TimeSeparator;
SavedShortDateFormat := ShortDateFormat;  // Запомнить настройки системы
// Установить свои настройки:
DateSeparator := '.';
TimeSeparator := ':';
ShortDateFormat := 'dd.MM.yyyy';
 
...
 
procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction);
...
DateSeparator := SavedDateSeparator;
TimeSeparator := SavedTimeSeparator;
ShortDateFormat := SavedShortDateFormat;  // Восстановить настройки системы
Это, конечно, не очень хорошо (для других программ, работающих одновременно с вашей), но другой вариант - менять каждый раз по всем своим файлам коды разделителей на системные, чтобы можно было использовать стандартные библиотеки функций (например, работающие с TDateTime) - в общем-то не лучше. Например, не всегда очевидно, на какой разделитель надо поменять.
0
12.08.2011, 03:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2011, 03:44
Помогаю со студенческими работами здесь

Как программно поменять ширину отстыкованного Edit?
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var...

Как программно поменять Z-порядок Image?
Пусть есть два image. Создали на форме в редакторе. Одна картинка выше другой (та что создана...

Как менять настройки монитора программно?
Многоэкранный монитор (2 штуки), надо поменять эту настройку:

Как менять настройки монитора программно?
Надеюсь, WinAPI есть для этого. Многоэкранный монитор (2 штуки), надо поменять эту настройку:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru