SysUtils.ShortDateFormat проблем
10 отговора
282 прегледа
SysUtils.ShortDateFormat проблем
При стартиране на програмата сетвам SysUtils.ShortDateFormat.
На някои Windows "В избран момент" настъпва някакво събитие което го ресетва на системните настройки (например грешка при запис на дискета,
върху 2003 като терминал клиент, след около 10 минути винаги го ресетва).
Как се забранява тая гадост(Идеята да сложа един таймер и да сетвам на няколко секунди ми изглежда голяма мърлящина).
На някои Windows "В избран момент" настъпва някакво събитие което го ресетва на системните настройки (например грешка при запис на дискета,
върху 2003 като терминал клиент, след около 10 минути винаги го ресетва).
Как се забранява тая гадост(Идеята да сложа един таймер и да сетвам на няколко секунди ми изглежда голяма мърлящина).
TApplication.UpdateFormatSettings
Трябва да установиш UpdateFormatSettings := False.
Грешката е в системата :)
Грешката е в системата :)
Много лош стил е да променяш състемните настройки от твоята програма.
Не виждам причина на някой някога да се наложи да го прави - ще споделиш ли кое те накара да си толкова "хитър"?
Много лош стил е да променяш състемните настройки от твоята програма.
Не виждам причина на някой някога да се наложи да го прави - ще споделиш ли кое те накара да си толкова "хитър"?
Re: Грешката е в системата :)
аз малко поизостанах от Delphi-то, ама
SysUtils.ShortDateFormat
не е ли вътрешна /за приложението/ променлива?
Am I evil?
Yes I am.
SysUtils.ShortDateFormat
не е ли вътрешна /за приложението/ променлива?
Am I evil?
Yes I am.
Да, прав си
Да, прав си, в действителност още в инициализацията на SysUtils (секция Initialization) ShortDateFormat се зарежда посредством GetLocaleInfo и е чудно как се променя по време на изпълнение (според твърдението).
Re: Да, прав си
Прав е човека... Само който не е писал приложения дето работят на хиляди машини, може да се доверява на 100% на това което е написано в хелповете...
Що коса ми побеля, от един скриинсавер, който при включването си, променяше настройките на приложението ми, и вместо CurrencyString = 'лв', ставаше $, и вместо DecimalSeparator = '.' ставаше запетая, та гърмяха разни нещица...
Но ето това разреши проблема, та вече няма проблеми:
unit XXXXXXXX.
uses ..........
implementation
.....
initialization
ShortDateFormat := 'dd/mm/yyyy';
LongdateFormat := 'dd/mm/yyyy';
DateSeparator := '/';
DecimalSeparator := '.';
ThousandSeparator := char(160);
CurrencyString := 'лв';
CurrencyFormat := 3;
NegCurrFormat := 8;
CurrencyDecimals := 2;
ShortTimeFormat := 'hh:mm';
LongTimeFormat := 'hh:mm:ss';
Application.UpdateFormatSettings:=False;
end.
Що коса ми побеля, от един скриинсавер, който при включването си, променяше настройките на приложението ми, и вместо CurrencyString = 'лв', ставаше $, и вместо DecimalSeparator = '.' ставаше запетая, та гърмяха разни нещица...
Но ето това разреши проблема, та вече няма проблеми:
unit XXXXXXXX.
uses ..........
implementation
.....
initialization
ShortDateFormat := 'dd/mm/yyyy';
LongdateFormat := 'dd/mm/yyyy';
DateSeparator := '/';
DecimalSeparator := '.';
ThousandSeparator := char(160);
CurrencyString := 'лв';
CurrencyFormat := 3;
NegCurrFormat := 8;
CurrencyDecimals := 2;
ShortTimeFormat := 'hh:mm';
LongTimeFormat := 'hh:mm:ss';
Application.UpdateFormatSettings:=False;
end.
WM_WININICHANGE, WM_SETTINGCHANGE
При зареждане на програмата тези неща се инициализират, но по време на работа ако се получи WM_WININICHANGE (или WM_SETTINGCHANGE) те се прочитат наново. А кой го праща в случая това съобщение и защо е съвсем друг въпрос
ПП Мразя дир.бг
ПП Мразя дир.бг
Re: WM_WININICHANGE, WM_SETTINGCHANGE
Хе-хе-хе....
Тъй де... Аз и затова съм си написал една процедурка, за всеки случай, наречена BeginBG, която си я изпълнявам преди всяко записване в бази разни... съществува риска по време хилядната от секундата да смени някой нещо, ама...
А защо мразиш дир.бг.... аз щото никой не мразя и никой не тача или милея...
Тъй де... Аз и затова съм си написал една процедурка, за всеки случай, наречена BeginBG, която си я изпълнявам преди всяко записване в бази разни... съществува риска по време хилядната от секундата да смени някой нещо, ама...
А защо мразиш дир.бг.... аз щото никой не мразя и никой не тача или милея...
Re: WM_WININICHANGE, WM_SETTINGCHANGE
Ами те затова са си сложили хората пропъртито дали приложението ти да си обновява стойностите или не.
А за дир-а - с всеки изминал ден писането в клуба ми коства все повече нерви... Разбирам, че са им натоварени сървърите в пиковите часове, ама да вземат да си пооправят нещата де! Като ще предлагат някаква услуга (била тя безплатна или не) поне да е работеща...
А за дир-а - с всеки изминал ден писането в клуба ми коства все повече нерви... Разбирам, че са им натоварени сървърите в пиковите часове, ама да вземат да си пооправят нещата де! Като ще предлагат някаква услуга (била тя безплатна или не) поне да е работеща...
Re: Да, прав си
Ти май предпочиташ да изнасилваш юзера да работи с "твоите" регионални настройки, вместо да си направиш труда да си направиш приложението както трябва.
Уважавай правото на избор на юзера и той ще те обича
Впрочем, стойностите ти са ужасно несъответстващи на никакъв стандарт и традиции за България. Особено е гаден дванадесетчасовия формат за време.
Уважавай правото на избор на юзера и той ще те обича
Впрочем, стойностите ти са ужасно несъответстващи на никакъв стандарт и традиции за България. Особено е гаден дванадесетчасовия формат за време.
За Дир-а :)
Това, че са безплатни и натоварени, може би е естествено :) - ама що като не ми приеме поста и затрива въведеното - много ме дразни.
Може би в 1/5 от случеите се налага да пиша втори път, а даже и да се прежаля, винаги е по-небрежно :)
Освен, ако не съм забравил да по копна в клиборда.
И аз ги мразя
Може би в 1/5 от случеите се налага да пиша втори път, а даже и да се прежаля, винаги е по-небрежно :)
Освен, ако не съм забравил да по копна в клиборда.
И аз ги мразя