声明要从字符串变量转换的单位

时间:2018-12-05 18:08:54

标签: delphi measurement

我正在delphi中使用Convert函数编写一个简单的多设备应用程序,该应用程序将允许我转换测量值。

该表单由2个组合框和en编辑组成。要选择“转换自”,“转换为”和一个值。

因此,在我的组合框中,我选择了单位,然后将组合框的值传递给2个全局字符串

  fromType := cbConvFrom.Selected.Text;
  toType := cbConvTo.Selected.Text;

返回以下内容。

cbConvFrom returns duCentimeters
cbConvTo returns duMeters

但是,当我尝试将这些值传递给Convert函数时,它们显然不起作用,因为我试图将String作为TConvType传递,如下所示

conversion := Convert(StrToFloat(editValue.Text), fromType, toType);

我如何将这些字符串用作TConvType,以便上面的代码可以正常工作。

1 个答案:

答案 0 :(得分:3)

使用转换类型的字符串表示形式来代替,而是使用描述。使用ConvTypeToDescription从类型的注册中获取描述。例如:

ComboBox1.Items.Add(ConvTypeToDescription(duMeters));
ComboBox1.Items.Add(ConvTypeToDescription(duCentimeters));

然后,您可以使用inverse来提供转换功能。

DescriptionToConvType(ComboBox1.Items[ComboBox1.ItemIndex], fromType);
DescriptionToConvType(ComboBox2.Items[ComboBox2.ItemIndex], toType);
conversion := Convert(StrToFloat(editValue.Text), fromType, toType);