Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

установить: разделитель разрядов, дробной части, даты и т.д.


Алексей Петухов ©   (2004-06-18 19:26:00) 

Здравствуйте, уважаемые мастера.

Подскажите пожалуйста, как мне вне зависимости от региональных настроек в Windows, установить:
 разделитель разрядов = нет
 разделитель дробной части = ,
 разделитель даты = .
 колличество дробных знаков = 2
И сделать эти изменения фиксированными на время работы программы?
А то если я указываю  
 ThousandSeparator:=#0;
и во время работы программы меняю его в региональных настройках, то он и программе меняется.

Заранее благодарю за помощь.


evvcom   (2004-06-22 20:35:00) [1]

Вот чем больше будет таких программ, меняющих глобальные настройки, тем глючнее будут работать программы на этом компьютере. Выбрасывать такие программы надо! Не раздумывая, а по сему и самому не писать такого.


Алексей Петухов   (2004-06-22 18:45:00) [2]

мне нужно сделать это для всех гридов, лабелей, едитов и множества других DB-компонент, в том числе и для самописных.
Для каждого, согласитесь, делать это немного утомительно.
Так-что мне нужно "ВСЕ И СРАЗУ" :-).

Вариант с переопределением значений типа ThousandSeparator - самое оно, но при использовании в ODBC драйвере MS SQL параметра Использовать региональную настройку=yes, при изменениях в региональных настройках, во время работы программы меняются и вид этих гридов, несмотря на мои переопределения, как это побороть?
Вопрос в этом.


Петров Денис   (2004-06-21 17:03:00) [3]

> Алексей Петухов   (21.06.04 16:25) [6]

Ну и установи формат вывода только для грида, например, так:


(Query1.FieldByName('price') as TNumericField).DisplayFormat := '0.00';


Алексей Петухов   (2004-06-21 16:25:00) [4]


> А цель сего какова? В зависимости от цели есть разные пути
> решения

Цель такая: например, что-бы в DBGrid-ах числа без разделителей разрядов отображались (и обрабатывались) в не зависимости от региональных настроек и драйверов баз данных.


evvcom   (2004-06-20 19:39:00) [5]


> Подскажите пожалуйста, как мне вне зависимости от региональных
> настроек в Windows, установить:

А цель сего какова? В зависимости от цели есть разные пути решения.


Vit@ly   (2004-06-18 21:10:00) [6]

Проверил
Var ssep: Char;//глобально в проекте
procedure TForm1.Button1Click(Sender: TObject);
begin
ssep:= ThousandSeparator;
ThousandSeparator:= ':';
...........
...............

ThousandSeparator:= ssep;
end;


Vit@ly   (2004-06-18 21:03:00) [7]

А в чем сомнения?
Читаешь установленные разделители на момент запуска проги, запоминаешь, устанавливаешь нужные, а при завершении программы, восстанавливаешь в эти переменные - те что запомнил.
Возможно с Var я переборщил.
Delphi и без нас распознает распознает их
Могу проверить, чотя и лень


Алексей Петухов   (2004-06-18 20:52:00) [8]


> Vit@ly ©   (18.06.04 20:39) [1]
> var ThousandSeparator: Char;

Что-то сомневаюсь я что это может как-то помочь ....


Vit@ly   (2004-06-18 20:39:00) [9]

var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
и т.д.


Наверх

Титульная страница Поиск, карта сайта Написать письмо