Delphi FormatFloat 和 Format 函数

标签 delphi

我有一个应用程序,用户可以在其中设置值的显示方式。用户输入格式化字符串,组件使用 FormatFloat 来显示该值。

但现在我们正在使用一个新的第三方组件,它使用 Format 函数格式化值,当然,我们的用户格式都不起作用,因为 Format 和 FormatFloat 函数使用不同的语法。

那么有人知道两者之间转换的方法吗?或者也许有人有代码可以做到这一点?

谢谢

阿杰

最佳答案

虽然 FormatFloat 的格式字符串或多或少可以转换为 Format 的格式字符串,但您可能只能获得正值的真正相似性。 Format 方法根本没有提供足够的灵 active 来合并 FormatFloat 方法的格式字符串提供的功能和细粒度控制。

例如,FormatFloat 方法允许使用三种不同的格式来表示正值、负值和零值。此外,FormatFloat 格式字符串允许使用字符串文字,例如'#,##0.00;;零'; (这意味着零值被打印为“零”)。

要使用 Format 函数获得类似的结果,您自己需要完成 FormatFloat 通过格式字符串为您完成的所有繁重工作。

因此,尽管我反对更改第三方控件的源代码,就像我反对更改 vcl 源代码一样,但我同意 David 的观点:找到一种方法使第三方控件使用 FormatFloat 函数。最好通过自定义后代或通过插入器类(也称为拦截器类),但如果失败,请务必更改第三方控件的源。只需确保正确标记更改的部分,以便在切换到该控件的新版本时可以轻松重做。

关于Delphi FormatFloat 和 Format 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4992043/

相关文章:

delphi - 如何在 COM 服务器中引发异常?

delphi - 列表框中的图像预览

Delphi:TImage.Create 导致访问冲突

delphi - 如何使用 TList<_AnyDynamicArrays_> 解决 Delphi 10 的错误?

delphi - 如何在Delphi中将二进制数据写入stdout?

delphi - Delphi 中的动态赋值

Android WebBrowser 向下滚动页面

delphi - 模拟按键但仅针对特定窗口?

delphi - 寻找 Delphi 甘特图组件

c++ - 什么是Delphi DCU文件?