Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

DecimalSeparator !! ?????   Найти похожие ветки 

 
Serge ©   (2004-04-16 16:10) [0]

Привет всем! Возник у меня вопрос относительно сабжа. Есть програмка работающая с БД ДБИСАМ (для справки), работает на компе с Win98 Russian.
При старте я указываю явно DecimalSeparator - ".", в системе разделителем стоит ","
Все хорошо и отлично до определенного момента когда разделитель "." самопроизвольно меняется на системный "," ( из программы я его не меняю 100% ). Почему возникает такая ситуация ?

P.S.У меня уже будет рак мозгов от этого - бо програмка работает с фискальным принтером и там если что не так - не отменишь операции. Сейчас я вынужден ставить по всей программе надо не надо разделитель на ".".


 
Reindeer Moss Eater ©   (2004-04-16 16:17) [1]

Application.UpdateformatSettings


 
Андрей Сенченко ©   (2004-04-16 16:22) [2]

В этом есть одно достоинство - возврат ошибочно пробитого ( по КМ-3 ) скорее всего тоже подцепит неверный сепаратор и вернет правильную сумму :)


 
Serge ©   (2004-04-16 16:50) [3]

The Application variable’s UpdateFormatSettings method either allows or disallows changes in system settings. The default is True. Set this property to False to prevent the system settings from changing. - я не понял, можно заблокировать изменнеие системных настроек для системы целиком или для отдельного приложения, то есть если я в одной программе ставлю DecimalSeparator:="." then UpdateFormatSettings:=False то в другой DecimalSeparator:="," не поменяет разделитель ???


 
Anatoly Podgoretsky ©   (2004-04-16 16:51) [4]

Serge ©   (16.04.04 16:10)  
Эта переменная не потоко безопасна


 
Reindeer Moss Eater ©   (2004-04-16 16:58) [5]

DecimalSeparator это всего лишь глобальная переменная модуля SysUtils.

И Application.UpdateformatSettings:=False; приводит к тому, что её значение не подвергается модификации при смене настроек в Windows.

Значение глобальной переменной не меняется, а вовсе не смена настроек Windows запрещается


 
Serge ©   (2004-04-16 16:58) [6]

From MSDN -
In general, when you receive this message < WM_WININICHANGE >, you should check and reload any system parameter settings that are used by your application.

Получается что нужно ловить WM_WININICHANGE либо использовать TApplication.CheckIniChange - что бы следить за изменениями в системе и соответсвенно реагировать ???


 
Reindeer Moss Eater ©   (2004-04-16 17:02) [7]

Ёкарный бабай.

Хочешь - лови кайф или сообщение WM_WININICHANGE .

Но тебе же в первом же посте сказали как решить проблему в стиле ООП Delphi  не залезая в дебри Win32 API


 
Serge ©   (2004-04-16 17:02) [8]

С вопросом я опоздал маленько :) - связь знаете ли...

> Reindeer Moss Eater ©   (16.04.04 16:58) [5]
А из отрывка хелпа в [3] я понял совсем другое :(

С-с-ы-ы-пасибо (С) "Жил был пес"


 
Serge ©   (2004-04-16 17:04) [9]

> Reindeer Moss Eater ©   (16.04.04 17:02) [7]

Я уже понял, не надо нервничать :)

Еще раз спасибо.


 
Serge ©   (2004-04-16 17:08) [10]

function TApplication.CheckIniChange(var Message: TMessage): Boolean;
begin
 Result := False;
 if (Message.Msg = RM_TaskbarCreated) or
    (Message.Msg = WM_WININICHANGE) then
 begin

   
   if UpdateFormatSettings then
   begin
     SetThreadLocale(LOCALE_USER_DEFAULT);
     GetFormatSettings;
   end;
   
:))))  воочию убедился я, прозрел :))))

   if UpdateMetricSettings then
     Screen.GetMetricSettings;

   if Message.Msg = RM_TaskbarCreated then
   begin
     Screen.ResetFonts;
   end;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-1081945561
Андрей Сенченко
2004-04-14 16:26
2004.05.02
Спасите тормоза :)


1-1081950622
Moroz
2004-04-14 17:50
2004.05.02
Производительность алгоритма


1-1082214926
Barmaglot
2004-04-17 19:15
2004.05.02
Pascal......работа с матрицами....


11-1066635514
Ал
2003-10-20 11:38
2004.05.02
Как узнать, что система в простое и как - что вышла из него?


3-1081001448
YurikGl
2004-04-03 18:10
2004.05.02
IBPumpPlug.dll