Delphi 将枚举的值赋给其他变量

Delphi 将枚举的值赋给其他变量,delphi,enums,Delphi,Enums,我在Delphi中有以下枚举: type TChangingDataSetState=(Inserting=1,Editing,Deleting) ...... var ChangingDSSsate:TChangingDataSetState; 在BeforePost事件中,我检查数据集是否处于插入模式,然后 ChangingDSState:=Inserting else ChagingDSState:=Editing 假设数据集处于编辑模式,这意味着我的ChangingDSState

我在Delphi中有以下枚举:

type TChangingDataSetState=(Inserting=1,Editing,Deleting)
......
var
ChangingDSSsate:TChangingDataSetState;
在BeforePost事件中,我检查数据集是否处于插入模式,然后

 ChangingDSState:=Inserting
else
 ChagingDSState:=Editing

假设数据集处于编辑模式,这意味着我的ChangingDSState变量将被设置为2(编辑)。现在我想知道如何使用该数字将其作为参数传递给过程

我假设您想要的是序数值而不是枚举值。您可以通过
ord()
获得这一点


因此,
ord(chagingdstate)
是一个整数表达式,当
chagingdstate
等于
编辑时,它的值为
2
。我将在8分钟内投票决定答案,因为我不知道。OK?:)+1用于使用
Ord(chagingdstate)
,而不是强制转换为整数
integer(chagingdstate)
是否确实需要
=1
TChangingDataSetState
的声明中?如果他不需要,则枚举从
TChangingDataSetState的序数值0开始=(Inserting=1
part,不知道你可以强制这样的枚举值,很酷,这是什么时候引入的?@Johan:AFAIK它是为了Linux兼容性而引入的,即与D6/7兼容。@HeartWare:没错。
=1
引入了他可能不需要的非标准行为。如果他不需要它,他可能会绕过一些我的限制。)我们应该坚持习惯用法。