powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FormatSettings for DLL
24 сообщений из 24, страница 1 из 1
FormatSettings for DLL
    #40057310
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !

Подскажите как ведет себе FormatSettings при работе с DLL

Т.е. в основной форме делаю присвоение
FormatSettings.ShortDateFormat := 'yyyy-mm-dd';
FormatSettings.LongTimeFormat := 'hh:nn:ss';
FormatSettings.......................
FormatSettings.......................

Но в DLL в котором идет выполнение SQL запросов эти стандарты
не отрабатываю

В чем может быть причина и как ее исправить !

Заранее благодарен !
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057315
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XВ чем может быть причина и как ее исправить !

У них разные глобальные переменные. Не присваивай, используй системные настройки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057318
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

HOME_XВ чем может быть причина и как ее исправить !

У них разные глобальные переменные. Не присваивай, используй системные настройки.


Cистемные настройки
Не имею возможности - ТОНКИЙ клиент.

А как присвоить FormatSettings глобальной переменной DLL
Прошу привести программный код

Спасибо
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057319
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пакеты ?
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057322
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XА как присвоить FormatSettings глобальной переменной DLL

Никак.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057324
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X

А как присвоить FormatSettings глобальной переменной DLL
Прошу привести программный код

Спасибо

Если это Ваша длл, экспортируйте из нее какую-нибудь функцию, InitSettings, например, и вызывайте ее в процессе инициализации приложения/длл. В самой функции уже будет доступ к FormatSettings длл, там уже и прописывайте необходимое.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057325
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X
Но в DLL в котором идет выполнение SQL запросов эти стандарты
не отрабатываю
Если не генерировать SQL, для которых важны "эти стандарты", то и проблем не будет.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057384
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X
В чем может быть причина и как ее исправить !

В Delphi есть два пути работать с DLL. Один - поставить настройку Build with runtime packages, после чего всё отлично работает точно так же, как в одном EXE, вообще без какой-либо специфики. Второй - не ставить эту настройку и всю жизнь ходить по граблям. У дельфи-программистов очень скучная жизнь, поэтому 99% выбирают второй путь и таким образом делают её куда интереснее и непредсказуемее.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057433
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
HOME_X
В чем может быть причина и как ее исправить !

В Delphi есть два пути работать с DLL. Один - поставить настройку Build with runtime packages, после чего всё отлично работает точно так же, как в одном EXE, вообще без какой-либо специфики. Второй - не ставить эту настройку и всю жизнь ходить по граблям. У дельфи-программистов очень скучная жизнь, поэтому 99% выбирают второй путь и таким образом делают её куда интереснее и непредсказуемее.
А первые в итоге не могут использовать новые версии делфи, ибо runtime packages из другой версии делфи несовместимы друг с другом, и в итоге программисты типа softwarer до сих пор сидят на d5))))))
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057440
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X
Но в DLL в котором идет выполнение SQL запросов эти стандарты
Не пихайте данные в запросы строками, используйте параметры.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
q.text:='update tbl set t=:t where id=:id';
q.ParamByName('t').asDateTime:=t;
q.ParamByName('id').asInteger:=id;
try
   q.ExecSQL;
except
 ...
end;
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057448
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2
А первые в итоге не могут использовать новые версии делфи

Спасибо. Время от времени я начинаю думать, что уже познал все возможные глубины человеческой глупости, и тут очень кстати, когда кто-нибудь брякает такое, что понимаешь - до дна ещё не один Титаник поместится.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057451
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
asutp2
А первые в итоге не могут использовать новые версии делфи

Спасибо. Время от времени я начинаю думать, что уже познал все возможные глубины человеческой глупости, и тут очень кстати, когда кто-нибудь брякает такое, что понимаешь - до дна ещё не один Титаник поместится.
Как ты самокритичен))
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057480
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064

Если это Ваша длл, экспортируйте из нее какую-нибудь функцию, InitSettings, например, и вызывайте ее в процессе инициализации приложения/длл. В самой функции уже будет доступ к FormatSettings длл, там уже и прописывайте необходимое.


Эта DLL - созданная мною на DELPHI10
"экспортируйте из нее какую-нибудь функцию" - не совсем Вас понял
Не могли бы привести пример кода

Спасибо
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057484
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X
x1ca4064

Если это Ваша длл, экспортируйте из нее какую-нибудь функцию, InitSettings, например, и вызывайте ее в процессе инициализации приложения/длл. В самой функции уже будет доступ к FormatSettings длл, там уже и прописывайте необходимое.


Эта DLL - созданная мною на DELPHI10
"экспортируйте из нее какую-нибудь функцию" - не совсем Вас понял
Не могли бы привести пример кода

Спасибо



Например - вот функцию, которую я вызываю
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
library Scripts;

uses
  ComServ,
  SysUtils,
  Scripts_TLB in 'Scripts_TLB.pas',
  ComQuery in 'ComQuery.pas' {ComQuery: CoClass},
  AddSpan in 'AddSpan.pas';

exports
  Create_AddSpan,


............................
............................

function Create_AddSpan(aFile: PAnsiChar; aList: PAnsiChar; aKind: OleVariant; aBars: OleVariant; aHandle: OleVariant; var aSql: OleVariant; var aRecordSet: OleVariant;   RegSetup : PAnsiChar ): Integer;
  var
    S: String;
    B: TProgressBar;
    Id: Cardinal;
    H:  THandle;
  begin
     /// Вы предлагаете прямо здесь осуществить  установку  рег. стандартов
     //// передав их в качестве параметра  ?
     
    FormatSettings.DecimalSeparator    :=Copy(RegSetup, 1, 1)[1];
    FormatSettings.ThousandSeparator :=Copy(RegSetup, 2, 1)[1];
    FormatSettings.DateSeparator        :=Copy(RegSetup, 3, 1)[1];
    FormatSettings.ShortDateFormat    :=Copy(RegSetup, 4,10);

    /// Это сработает именно в DLL

    Result:=1;
    if (aBars  <>Null)then B:=TProgressBar(Integer(aBars)) else B:=Nil;
    if (aHandle<>Null)then H:=THandle(Integer(aHandle))    else H:=0;
    A:=TAddSpan.Create(iif(Integer(aKind)=0,'[Path]'+vbLine+String(aList),String(aFile)),B,H,aSql,aRecordSet);

    .............
  end;
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057493
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X

Не могли бы привести пример кода

Спасибо


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
library Scripts;

uses
  ComServ,
  SysUtils,
  Scripts_TLB in 'Scripts_TLB.pas',
  ComQuery in 'ComQuery.pas' {ComQuery: CoClass},
  AddSpan in 'AddSpan.pas';

exports
  InitFormatSettings,
  Create_AddSpan,
...
procedure InitFormatSettings(const AShortDateFormat,ALongDateFormat:string;const ADecimalSeparator,AThousandSeparator:char.....);
begin
  FormatSettings.DecimalSeparator:=ADecimalSeparator;
  ....
end;



Далее вызывате InitFormatSettings после LoadLibrary или в секции инициализации нужного модуля в основной программе.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057497
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry, не string конечно, а PChar...
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057718
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
В Delphi есть два пути работать с DLL. Один - поставить настройку Build with runtime packages, после чего всё отлично работает точно так же, как в одном EXE, вообще без какой-либо специфики. Второй - не ставить эту настройку и всю жизнь ходить по граблям. У дельфи-программистов очень скучная жизнь, поэтому 99% выбирают второй путь и таким образом делают её куда интереснее и непредсказуемее.

О, коллега тоже такой вот фигней страдает. Сколько он экзотических траблов получил на ровном месте - перечислению не поддается. Причем самое забавное, что особых требований к такому изврату нет, разве что размеры DLL.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057831
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

а вот это случайно не True? А то вдруг юзер что-то решит поменять, и всё слетит. Ну или "оно само...".
Application.UpdateFormatSettings
Specifies whether format settings are updated automatically when the user alters the system configuration. Use UpdateFormatSettings to control automatic updating of format settings. The default of true is set in the constructor . Using the default format settings is recommended. These settings are initialized to the Windows local.
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057840
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Причем самое забавное, что особых требований к такому изврату нет, разве что размеры DLL.

В смысле, ему несолидны dll по 30Кб, нужны по 30Мб?
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057892
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064
Sorry, не string конечно, а PChar...


Принято - спасибо - причину и как решить уяснил !
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40057893
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
HOME_X,

а вот это случайно не True? А то вдруг юзер что-то решит поменять, и всё слетит. Ну или "оно само...".
Application.UpdateFormatSettings
Specifies whether format settings are updated automatically when the user alters the system configuration. Use UpdateFormatSettings to control automatic updating of format settings. The default of true is set in the constructor . Using the default format settings is recommended. These settings are initialized to the Windows local.


Принято - спасибо за упреждение !
Учту в дальнейшем
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40058019
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
HOME_X
В чем может быть причина и как ее исправить !

В Delphi есть два пути работать с DLL. Один - поставить настройку Build with runtime packages, после чего всё отлично работает точно так же, как в одном EXE, вообще без какой-либо специфики. Второй - не ставить эту настройку и всю жизнь ходить по граблям. У дельфи-программистов очень скучная жизнь, поэтому 99% выбирают второй путь и таким образом делают её куда интереснее и непредсказуемее.


А я так пробовал. Ставил настройку. Прога не запускается и что-то там не может найти. Печаль (
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40058026
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik
А я так пробовал. Ставил настройку. Прога не запускается и что-то там не может найти. Печаль (

https://www.meme-arsenal.com/create/meme/3623786
...
Рейтинг: 0 / 0
FormatSettings for DLL
    #40058124
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
В смысле, ему несолидны dll по 30Кб, нужны по 30Мб?

Наоборот, место экономит. Хотя там 30 мб и не пахнет, это ж не хромиум и не qt
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FormatSettings for DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]