Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.2. Управление работой RDS и функции общего назначения

А.5.2.33. rdsListVarTypes – список названий типов переменных

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.2. Управление работой RDS и функции общего назначения

##### А.5.2.33. rdsListVarTypes – список названий типов переменных

Функция rdsListVarTypes возвращает динамически созданную строку, содержащую перечисление названий запрошенных типов переменных RDS, разделенных символом перевода строки «\n» (код 10). Такой список можно показывать пользователю для выбора типа переменной.

      RDSSTR RDSCALL rdsListVarTypesA( // UTF8
        DWORD Flags,      // Битовые флаги RDS_HVAR_F*
        RDSCSTR ExStruct  // Исключаемая из списка структура (UTF8)
      );
      RDSWSTR RDSCALL rdsListVarTypesW( // UTF16
        DWORD Flags,      // Битовые флаги RDS_HVAR_F*
        RDSWCSTR ExStruct // Исключаемая из списка структура (UTF16)
      );
      // Функция-псевдоним
      RDSXSTR RDSCALL rdsListVarTypes( // Кодировка по умолчанию
        DWORD Flags,      // Битовые флаги RDS_HVAR_F*
        RDSXCSTR ExStruct // Исключаемая из списка структура (кодировка по умолчанию)
      );

Тип указателя на эту функцию

RDS_SDwS (для UTF8) или RDS_WsDwWs (для UTF16)

Параметры

Flags(DWORD)
  Битовые флаги, указывающие функции, какие типы переменных нужно включить в список:

  RDS_HVAR_FARRAYS | матрицы;
  RDS_HVAR_F1INDEX | массивы (только если установлен флаг RDS_HVAR_FARRAYS, разрешить массивы не разрешая матриц нельзя);
  RDS_HVAR_FCHAR | однобайтовые целые (char);
  RDS_HVAR_FDOUBLE | вещественные двойной точности (double);
  RDS_HVAR_FFLOAT | вещественные одинарной точности (float);
  RDS_HVAR_FINT | четырехбайтовые целые (int);
  RDS_HVAR_FLOGICAL | однобайтовые логические;
  RDS_HVAR_FRUNTIME | переменные, тип которых может изменяться в процессе работы (произвольный тип);
  RDS_HVAR_FSHORT | двухбайтовые целые (short int);
  RDS_HVAR_FSIGNAL | сигналы (однобайтовые логические специального вида, см. §2.5.2 руководства программиста);
  RDS_HVAR_FSTRING | строки;
  RDS_HVAR_FSTRUCT | структуры.

  Для удобства в «RdsDef.h» описано четыре дополнительных константы, представляющих собой объединение приведенных выше флагов для часто встречающихся случаев. Эти константы можно использовать в параметре функции вместо флагов:

  RDS_HVAR_FALL | все типы переменных;
  RDS_HVAR_FALLNS | все типы, кроме сигналов;
  RDS_HVAR_FALLPLAIN | все простые типы, то есть все, кроме структур, матриц/массивов, строк и произвольных типов;
  RDS_HVAR_FALLPLAINNS | все простые типы, кроме сигналов.

  Передаваемые в этом параметре флаги частично совпадают с флагами, используемыми вспомогательным объектом редактирования переменных в функции rdsVSExecuteEditor.
ExStruct(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку с именем структуры, которая должна быть исключена из формируемого списка. Если в список нужно включить все структуры, в этом параметре передается NULL. При исключении какой-либо структуры вместе с ней из списка исключаются все структуры, в которых эта используется как тип одного из полей.

Возвращаемое значение

Указатель на сформированную в динамической памяти строку, содержащую названия запрошенных типов, принятые в RDS. Именно такие названия показываются в выпадающих списках стандартных окон редактирования переменных и структур. В случае ошибки (например, если в параметре Flags не установлен ни один флаг типа), функция возвращает NULL.

Примечания

Списки типов, возвращаемых функцией rdsListVarTypes, чаще всего используются моделями блоков и модулями автокомпиляции, позволяющими пользователю задавать структуру переменных блока. Элементы списка, как и в других сервисных функциях RDS, отделяются друг от друга символом перевода строки («\n», код символа 10 в десятичной системе или 0x0A в шестнадцатеричной). Выбранный пользователем элемент списка можно преобразовать в константу типа при помощи функции rdsProcessText, передав ей код операции RDS_PT_VARTYPECHAR.

В параметре ExStruct можно передать имя структуры которая (вместе со всеми использующими ее структурами) должна быть исключена из формируемого списка. Например, если создается пользовательский интерфейс для редактирования полей какой-либо структуры, сама эта структура должна быть исключена из списка возможных типов полей – структура не может быть полем самой себя. По этой же причине необходимо исключить из списка и другие структуры, в которые входит эта.

Функция создает строку в динамической памяти, поэтому после использования эта строка обязательно должна быть освобождена вызовом rdsFree.

См. также

Типы переменных RDS, rdsProcessText, rdsFree, rdsVSExecuteEditor.