데이터 서버와 클라이언트가 있습니다. 서버 시스템에는 십진수 분리 자 "."가 있습니다. 내 고객이 무엇을 가지고 있는지 알지 못해 프로그램에서 바꿀 수 있습니다.Firemonkey에서 인쇄 할 때 클라이언트의 형식 설정이 변경됩니다.
FormatSettings.DecimalSeparator:='.';
FormatSettings.ThousandSeparator:=' ';
이제 클라이언트에서 인쇄하면 FormatSettings가 기본값으로 복원됩니다.
Printer.ActivePrinter.SelectDPI(600,600);
//formatsettings.Decimalseperator is now ","
이것은 무엇입니까? 이거 버그 야?
보너스 Q : 클라이언트와 서버에 대해 동일한 형식 설정을 어떻게 유지합니까?
'StrToFloat '와 같은 일부 시스템 방법은 FormatSettings를 사용합니다. 그리고 나는 클라이언트와 서버에서 같은 동작을 원합니다. 따라서 Formatsettings를 시작하십시오. 나는 당신의 방법을 향상 시키지만. –
'StrToFloat'은 매개 변수로 자신의 설정을 취할 수있는 오버로드를 가지고 있습니다. 아마도 당신이 사용하는 기능의 대부분은 그것을 가지고 있습니다, 당신은 그것을 모르고 있습니다. –
'Printer.ActivePrinter.SelectDPI'가 전역'FormatSettings'을 변경했다는 주장을 재현 할 수 없습니다. 그러나 XE6이 없으므로 귀하가 옳을 수도 있습니다. 'Printer.ActivePrinter.SelectDPI'에 대한 간단한 호출이'FormatSettings'을 변경했다는 것을 확인할 수 있다면 버그이며 https://quality.embarcadero.com/에보고해야합니다. –