Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IS单位和转换的Delphi框架_Delphi - Fatal编程技术网

IS单位和转换的Delphi框架

IS单位和转换的Delphi框架,delphi,Delphi,我们需要一个通用框架,它允许我们的应用程序在基本单元和派生单元之间进行各种转换。也就是说,可以将单位为“米”的值与单位为“公里”的值相加,并且应该能够确定表达式的单位是什么 因此,如果我们计算一个速度(m/s)和一个时间(h:mm:ss)的乘积,那么它应该能够确定得到的单位是距离(m) 有谁知道这样一个库在什么地方可以买到,是商业的还是开源的吗?我所看到的没有办法直接做到这一点 您必须将一种类型转换为另一种类型(或将两者转换为公共类型),执行操作,然后将结果转换回 Delphi(至少从2007年

我们需要一个通用框架,它允许我们的应用程序在基本单元和派生单元之间进行各种转换。也就是说,可以将单位为“米”的值与单位为“公里”的值相加,并且应该能够确定表达式的单位是什么

因此,如果我们计算一个速度(m/s)和一个时间(h:mm:ss)的乘积,那么它应该能够确定得到的单位是距离(m)


有谁知道这样一个库在什么地方可以买到,是商业的还是开源的吗?

我所看到的没有办法直接做到这一点

您必须将一种类型转换为另一种类型(或将两者转换为公共类型),执行操作,然后将结果转换回

Delphi(至少从2007年开始)附带了
ConvUnit
单元,该单元有类可以完成这种类型的工作,并且有一个示例应用程序演示了
ConvertIt
。您可以自定义转换类型,这使它非常灵活

有更多的信息在网页上


我在谷歌上搜索了一些出现的术语,但没有找到。如果您想滚动您自己的数据类型,这可能是一个起点(不是在Delphi中):滚动您自己的数据类型。使用带有运算符重载的记录。记录需要包含值和维度。这是不够的。您需要一个封装维度和值的数据类型您对我的评论的反应令人费解。答案中缺少的部分是维度的处理。我刚刚指出了这一点。你可以接受这个暗示,也可以不接受。这本身就是一件非常有用的事情,而且无论你构建什么,都应该以此为基础+1.