type
TIMEMOVETYPE =             
(
LEFTUP       = 0,    
LEFTDOWN        = 1,    
RIGHTUP         = 2,   
    RIGHTDOWN       = 3,    
    STOP            = 4   
 );
为什么这里赋值不用   :=     
delphi的   =   不是条件判断吗?

解决方案 »

  1.   

    LEFTUP       = 0
    这也是类型吗?
    定义不是用 :吗
      

  2.   

    建议你找本书看看。
    这是定义了一个叫 TIMEMOVETYPE 枚举类型,它的可能值包括 LEFTUP 、LEFTDOWN、RIGHTUP、RIGHTDOWN   和 STOP ,这里 Ord(LEFTUP )返回 0,Ord
    (LEFTDOWN)返回 1,Ord(RIGHTUP)返回 2,等等。
      

  3.   

    晕,我也不知道说的对不对啊,
      LEFTUP = 0, 
      LEFTDOWN = 1, 
      RIGHTUP = 2, 
      RIGHTDOWN = 3, 
      STOP = 4 
    这几个是常量,常量赋值不用 :=
      

  4.   

    Enumerated types with explicitly assigned ordinality(指定序数值的枚举类型)
    默认情况下,枚举类型的序数从 0 开始,并按它们的标志符在声明时列出的顺序排列。在声明时,通过
    给它的某些或所有值明确地指定一个序数,可以覆盖默认地序数。要给一个值赋序数,使用=
    constantExpression 紧跟在它的标志符之后,这里,constantExpression 为一个整数类型的常量表达式。比

    type Size = (Small = 5, Medium = 10, Large = Small + Medium);
    定义了一个叫做Size 的类型,它的可能值包括Small、Medium 和Large,这里Ord(Small)返回5,Ord
    (Medium)返回10,Ord(Large)返回15。
    实际上,枚举类型是这样一个子界类型:它的最小值和最大值,分别对应于声明时的最小序数和最大序
    数。在上面的例子中,Size 类型的最小序数为5,最大为15,所以它有11 个可能的值(因此,类型array[Size]
    of Char 表示一个有11 个元素的字符数组)。虽然只有其中的3 个值有名称,但其它值通过类型转换、或
    通过一些例程(比如Pred、Succ、Inc 和Dec)是可以访问的。在下面的例子中,Size 取值范围内的‘无
    名’值被赋给X:
    var X: Size;
    X := Small; // Ord(X) = 5
    X := Size(6); // Ord(X) = 6
    Inc(X); // Ord(X) = 7
    若一个值没有明确指定序数,它的取值将是前一个值的序数值加上1;如果第1 个值没有指定序数,它
    的序数为0。所以,在下面的声明中:
    type SomeEnum = (e1, e2, e3 = 1);
    SomeEnum 只有两个可能的值:Ord(e1)返回0,Ord(e2)返回1,Ord(e3)也是1。因为e2 和e3
    有相同的序数,它们表示相同的值。