我正在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,以便上面的代码可以正常工作。
答案 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);