PureBasic

Enumeration (Перечисления)


Синтаксис
Enumeration [name] [<constant> [Step <constant>]] 
  #Constant1
  #Constant2 [= <constant>]
  #Constant3
  ...
EndEnumeration



EnumerationBinary [name] [<constant>] 
  #Constant1
  #Constant2 [= <constant>]
  #Constant3
  ...
EndEnumeration

Описание


Enumeration (Перечисление) очень удобны, если нужно быстро объявить последовательность констант без использования конкретных чисел. Первая константа в последовательности получит значение 0, следующая будет 1 и т.д Можно изменить значение первой константы и настроить шаг для каждой новой константы в перечислении. Если нужно, текущую константу можно изменить, задав посредством '=' новое значение для этой константы. Так как Enumeration допускают только целые числа, числа с плавающей запятой будут округлены к самому близкому целому числу.

Для идентификации Перечисления можно задать имя, что позволить продолжить данное Перечисление позже. Это позволяет сохранить целостность группы объектов, при объявлении их в различных местах кода.

Только для опытного пользователя: Зарезервированная константа #PB_Compiler_EnumerationValue содержит следующее значение Перечисления. Может быть полезна для сцепления нескольких Перечислений.

Команда EnumerationBinary может использоваться, чтобы создать Перечисление, подходящие для флагов. Первое значение пункта равняется 1.

Пример: простое Перечисление

Enumeration
    #GadgetInfo ; Будет 0
    #GadgetText    ; Будет 1
    #GadgetOK    ; Будет 2
EndEnumeration

Пример: Перечисление с шагом

Enumeration 20 Step 3
    #GadgetInfo ; Будет 20
    #GadgetText    ; Будет 23
    #GadgetOK    ; Будет 26
EndEnumeration

Пример: Перечисление с динамическим изменением

Enumeration
    #GadgetInfo      ; Будет 0
    #GadgetText = 15 ; Будет 15
    #GadgetOK        ; Будет 16
EndEnumeration

Пример: Перечисление с именем

Enumeration Gadget
    #GadgetInfo ; Будет 0
    #GadgetText    ; Будет 1
    #GadgetOK    ; Будет 2
EndEnumeration

Enumeration Window
    #FirstWindow  ; Будет 0
    #SecondWindow ; Будет 1
EndEnumeration

Enumeration Gadget
    #GadgetCancel ; Будет 3
    #GadgetImage  ; Будет 4
    #GadgetSound  ; Будет 5
EndEnumeration

Пример: Получение следующего значения Перечисления

Enumeration
    #GadgetInfo ; Будет 0
    #GadgetText    ; Будет 1
    #GadgetOK    ; Будет 2
EndEnumeration

Debug "Следующее значение enumeration: " + #PB_Compiler_EnumerationValue ; Выведет 3

Пример: Перечисление для двоичного файла

EnumerationBinary
    #Flags1 ; Будет 1
    #Flags2    ; Будет 2
    #Flags3    ; Будет 4
    #Flags4    ; Будет 8
    #Flags5    ; Будет 16
EndEnumeration