【发布时间】:2015-12-08 12:10:59
【问题描述】:
使用这样的旧方法很容易获取字符:
var
FS:TFormatSettings;
begin
FS:=TFormatSettings.Create;
...
记录成员FS.DecimalSeparator 将包含所需的Char。这种方法在我的 XE5 IDE 编译的 Win FMX 应用程序中运行良好。但是在寻找正确的方式来为 FireMonkey 中的角色提供正确的方法时,我读到了一些意见,认为这种方式是有害的,并且
deprecated。我还读到,更高版本的 Delphi 不支持此功能(我自己无法检查)。但是什么是正确和可靠的方法呢?尤其是如果希望代码能够迁移到 Android?
【问题讨论】:
-
查看 TFormatSettings 代码,我只能看到针对 Windows、MacOS 和 Linux 的平台定义(是的,我对此感到很惊讶,因为您可能对此感到惊讶),但对 Android 却一无所知。所以我不知道这是否完全支持 Android 操作系统。
-
作为操作系统的 Android 是否会向其应用程序公开此类信息?
-
@SilverWarior 感谢您对我的帖子的关注。是的。我也在挖掘 TFormatSettings 的代码。我有以下问题的背景。我正在编写一个
TGrid后代类,我希望它适合将来将我的主要项目代码迁移到 Android。某些列(单元格)需要输入控制。 Android 将显示一个屏幕键盘,其中包含由语言环境设置的小数分隔符按钮,但用户可以尝试输入该字符 >1 次。而且。字符串转换的浮点数(货币)也需要此数据。 -
@SilverWarior:如果你再仔细看一下,RTL 实际上有第四个初始化
TFormatSettings的实现——LIBICU 库。在SysUtils单元的最顶部,为Android 定义了USE_LIBICU:{$IFDEF ANDROID}{$DEFINE USE_LIBICU}{$ENDIF} -
谢谢@RemyLebeau。你曾经帮助人们提供出色的建议!我错过了指令。
标签: android delphi locale firemonkey delphi-xe5