Delphi 如何将枚举类型作为方法的参数传递?

Delphi 如何将枚举类型作为方法的参数传递?,delphi,Delphi,我需要将枚举传递给一个方法,但我需要一种通用的方法来传递枚举。这样我就可以用一个通用例程处理不同的枚举 procedure-PopulateComboBox(aComboBox:TMyComboBox;aEnum:??); 变量 ArrayEnumLabels:柏油树; ArrayEnumNames:柏油树; i:整数; 开始 ArrayEnumNames:=Enum.AsArray; ArrayEnumLabels:=Enum.EnumNames; aComboBox.ClearItemsVa

我需要将枚举传递给一个方法,但我需要一种通用的方法来传递枚举。这样我就可以用一个通用例程处理不同的枚举

procedure-PopulateComboBox(aComboBox:TMyComboBox;aEnum:??);
变量
ArrayEnumLabels:柏油树;
ArrayEnumNames:柏油树;
i:整数;
开始
ArrayEnumNames:=Enum.AsArray;
ArrayEnumLabels:=Enum.EnumNames;
aComboBox.ClearItemsValue;
对于i:=Enum.MinValue到Enum.MaxValue不开始
aComboBox.Items.Add(
ArrayEnumLabels[i]
);
aComboBox.Values.Add(
枚举值名称(ArrayEnumNames[i])
);
结束;
结束;

我想到了两种可能性:

  • 在传递之前,将枚举放入
    TValue
    (使用
    System.Rtti
    )中-需要使用
    TValue.From
    (在这里进行类型推断时可以省略泛型类型参数)

  • 使
    PopulateComboBox
    generic


  • 这可能与问题没有直接关系,但可能对您有用:所以请使用通用方法,谢谢Stefan。我将尝试你的两个建议。