Навигация:
<< >> Оглавление Указатель

Приложения

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

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

А.5.25. Вспомогательный объект для изменения структуры переменных блока

А.5.25.4. rdsVSAddVar – добавить переменную

Функция rdsVSAddVar добавляет переменную в объект-редактор.

  int  rdsVSAddVarA(
     Vars,    // Редактор переменных
    int Index,           // Номер переменной или -1
     VarName,     // Имя переменной (UTF8)
    char BaseVarType,    // Тип переменной
     StructType,  // Имя типа структуры (UTF8)
     Flags,         // Флаги переменной (RDS_VARFLAG_*)
    int ArrayDepth,      // Вложенность матрицы
     DefVal       // Значение по умолчанию (UTF8)
  );
  int  rdsVSAddVarW(
     Vars,    // Редактор переменных
    int Index,           // Номер переменной или -1
     VarName,    // Имя переменной (UTF16)
    char BaseVarType,    // Тип переменной
     StructType, // Имя типа структуры (UTF16)
     Flags,         // Флаги переменной (RDS_VARFLAG_*)
    int ArrayDepth,      // Вложенность матрицы
     DefVal      // Значение по умолчанию (UTF16)
  );
  // 
  int  rdsVSAddVar(
     Vars,    // Редактор переменных
    int Index,           // Номер переменной или -1
     VarName,    // Имя переменной (кодировка по умолчанию)
    char BaseVarType,    // Тип переменной
     StructType, // Имя типа структуры (кодировка по умолчанию)
     Flags,         // Флаги переменной (RDS_VARFLAG_*)
    int ArrayDepth,      // Вложенность матрицы
     DefVal      // Значение по умолчанию (кодировка по умолчанию)
  );

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

RDS_IHoISCSDwIS (для UTF8) или RDS_IHoIWsCWsDwIWs (для UTF16)

Параметры

Vars (RDS_HOBJECT)
Идентификатор вспомогательного объекта-редактора переменных, ранее созданного функцией rdsVSCreateEditor.
Index (int)
Начинающийся с нуля номер, который будет иметь эта переменная (уже существующие в наборе переменные начиная с этого номера сдвинутся на одну позицию вниз), или −1 для добавления переменной в конец списка.
VarName (RDSCSTR, RDSWCSTR, RDSXCSTR)
Указатель на строку с именем переменной.
BaseVarType (char)
Тип переменной – одна из констант RDS_VARTYPE_* кроме RDS_VARTYPE_STRUCTEND (это служебная константа, не тип переменной) и RDS_VARTYPE_ARRAY (массивы задаются другим способом). Если нужно указать в качестве типа структуру, в BaseVarType передается RDS_VARTYPE_STRUCT, а в параметре StructType – имя типа структуры, под которым она зарегистрирована в RDS. Если нужно указать в качестве типа матрицу, в BaseVarType передается тип элемента матрицы, а в параметре ArrayDepth – вложенность (1 для матрицы, 2 для матрицы матриц и т.д., см. ниже).
StructType (, , )
Имя типа структуры, если в параметре BaseVarType передана константа RDS_VARTYPE_STRUCT.
Flags (DWORD)
Набор битовых флагов переменной (аналогично полю Flags структуры описания переменной RDS_VARDESCRIPTION). Кроме стандартных флагов, можно также указать специальный битовый флаг RDS_VARFLAG_EXT_CHGNAME, разрешающий автоматически изменить имя добавляемой переменной, если переменная с таким именем уже есть в наборе. Если переменная с именем VarName уже есть, и флаг RDS_VARFLAG_EXT_CHGNAME не указан в параметре Flags, новая переменная добавлена не будет и функция вернет –1.
ArrayDepth (int)
Вложенность матрицы переменной: 0 – простая переменная типа BaseVarType, 1 – матрица типа BaseVarType, 2 – матрица матриц BaseVarType и т.п.
DefVal (, , )
Указатель на строку значения переменной по умолчанию (аналогично функции rdsSetBlockVarDefValueStr).

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

Номер добавленной переменной или −1 в случае ошибки.

Примечания

Эта функция добавляет в набор переменных объекта-редактора Vars новую переменную с именем VarName в позицию Index. Тип переменной задается сочетанием параметров BaseVarType, StructType и ArrayDepth. Параметр BaseVarType задает базовый тип элемента (тип самой переменной или тип элемента матрицы), в параметре StructType передается имя типа структуры, если базовый тип – структура, а в параметре ArrayDepth – вложенность матриц (0 – простая переменная). Например:

BaseVarType StructType ArrayDepth Тип
RDS_VARTYPE_INT NULL 0 Целое число (int)
RDS_VARTYPE_INT NULL 1 Матрица целых
RDS_VARTYPE_INT NULL 2 Матрица матриц целых
RDS_VARTYPE_STRUCT "Complex" 0 Структура «Complex»
RDS_VARTYPE_STRUCT "Complex" 1 Матрица структур «Complex»

Пример

Пример использования функции rdsVSAddVar приведен в §2.16.1 руководства программиста.

См. также

rdsVSCreateEditor, rdsVSAddVarByTypeText, rdsVSAddVarByDescr, rdsVSCreateByDescr, rdsSetBlockVarDefValueStr, типы переменных, RDS_VARDESCRIPTION.


<< >> Оглавление Указатель