![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
установить: разделитель разрядов, дробной части, даты и т.д.
Алексей Петухов © (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;
и т.д.