Delphi 将枚举的值赋给其他变量
我在Delphi中有以下枚举:Delphi 将枚举的值赋给其他变量,delphi,enums,Delphi,Enums,我在Delphi中有以下枚举: type TChangingDataSetState=(Inserting=1,Editing,Deleting) ...... var ChangingDSSsate:TChangingDataSetState; 在BeforePost事件中,我检查数据集是否处于插入模式,然后 ChangingDSState:=Inserting else ChagingDSState:=Editing 假设数据集处于编辑模式,这意味着我的ChangingDSState
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
引入了他可能不需要的非标准行为。如果他不需要它,他可能会绕过一些我的限制。)我们应该坚持习惯用法。