Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ПРоверить настройки на машине по числам и датам, для универсальности приложения 
:(
    Опции темы
nicka
  Дата 24.6.2004, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Работаю в Дельфи7

ПРоблема заключаеться при работе с числами и датами в приложениях по базам данных.
В зависимости от установок(Regional Settings - Numbers, Date) на машине клиента программа может работать или нет.

Как можно в коде посмотреть настройки на машине ....

Только если можно подробнее, я плохо в этом разбираюсь
PM MAIL   Вверх
Петрович
Дата 24.6.2004, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Хм. Что-то зачастили smile.gif
Смотри сюда. Причем, сразу отмечу что упоминаемые переменные можно еще и самому что-нибудь записать smile.gif


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
nicka
Дата 24.6.2004, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Петрович

совсем другая тема

PM MAIL   Вверх
stab
Дата 24.6.2004, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Есть такая функция GetLocaleInfo.
Пример использования: http://forum.vingrad.ru/index.php?showtopic=24842
Описание функции: http://msdn.microsoft.com/library/default....tl/nls_34rz.asp , http://msdn.microsoft.com/library/default....tl/nls_8rse.asp

С помощью этой функции можно получить любую информацию о настройках интернализации.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Гость_nicka
Дата 26.6.2004, 08:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня на форме стоит обьект TDateTimePicker1, когда из базы я передаю ему значение типа дата
выдаеться ошибка '10-Jun-04' is not valid Date,
я пытаюсь использовать процедуру GetLocaleFormatSettings для получения значений местных
установок на машине, но не все равно выдаеться та же ошибка....
Что неправильно в данном коде ?
Не совсем понимаю правда для чего в процедуре GetLocaleFormatSettings первый параметр,
я поставила 0 , потому что не поняла что туда сажать....


var v_formatset:TFormatSettings;

GetLocaleFormatSettings(0,v_formatset);
TDateTimePicker1.date :=StrToDate(TAdoQuery1.Fields.fieldbyname('ord_date').asstring,v_formatset);

  Вверх
Петрович
Дата 26.6.2004, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Цитата
совсем другая тема

Прошу прощения, дал неправильную ссылку. Правильная здесь
В качестве компенсации smile.gif раскажу здесь поподробнее.
В модуле System есть определение нескольких глобальных переменных:
Код
var CurrencyString: string;
var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;

var LongTimeFormat: string;
var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;

var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;

var TListSeparator: Char;

Все стандартные Delphi-функции преобразования данных пользуются значениями этих переменных.
Эти переменные в в момент старта программы автоматически заполняются региональными настройками системы. Более того, в процессе работы программы, значения в этих переменных могут измениться (см.ссылку выше).
Вы можете сами присваивать этим переменным те или иные значения, в зависимости какой формат используете Вы. Но, при этом, дабы работу Вашей программы не нарушил пользователь сменивший региональные настройки уже после того как Ваша программа была запущена, Вам надо выполнить действия приведенные описанные мною все в той-же, указанной выше теме smile.gif.
Например, если Вы, в своих данных, имеете даты в виде ''10-Jun-04', то Вы можете сделать следующие присваивания:
Код
DateSeparator := '-';
ShortDateFormat := 'dd/mmm/yy';


Тагда, Ваш TDateTimePicker1 будет работать нормально.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.