Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.25. Вспомогательный объект для изменения структуры переменных блока
А.5.25.11. rdsVSExecuteEditor – открыть окно редактора переменных
Функция rdsVSExecuteEditor вызывает стандартный редактор переменных RDS и позволяет пользователю изменить набор переменных во вспомогательном объекте.
BOOL RDSCALL rdsVSExecuteEditorA( RDS_HOBJECT Vars, // Редактор переменных BOOL Extended, // Расширенный редактор DWORD Flags, // Флаги (RDS_HVAR_F*) int MaxDepth, // Max вложенность матриц RDSCSTR Caption // Заголовок окна редактора (UTF8) ); BOOL RDSCALL rdsVSExecuteEditorW( RDS_HOBJECT Vars, // Редактор переменных BOOL Extended, // Расширенный редактор DWORD Flags, // Флаги (RDS_HVAR_F*) int MaxDepth, // Max вложенность матриц RDSWCSTR Caption // Заголовок окна редактора (UTF16) ); // Функция-псевдоним BOOL RDSCALL rdsVSExecuteEditor( RDS_HOBJECT Vars, // Редактор переменных BOOL Extended, // Расширенный редактор DWORD Flags, // Флаги (RDS_HVAR_F*) int MaxDepth, // Max вложенность матриц RDSXCSTR Caption // Заголовок окна редактора (кодировка по умолчанию) );
Тип указателя на эту функцию
RDS_BHoBDwIS (для UTF8) или RDS_BHoBDwIWs (для UTF16)
Параметры
- Vars (RDS_HOBJECT)
- Идентификатор вспомогательного объекта-редактора переменных, ранее созданного функцией rdsVSCreateEditor.
- Extended (BOOL)
- TRUE – вызвать окно редактирования переменных блока, FALSE – окно редактирования структуры (можно вводить только имя, тип и значение поля).
- Flags (DWORD)
-
Для удобства в «RdsDef.h» описано четыре дополнительных константы, представляющих собой объединение приведенных выше флагов для часто встречающихся случаев. Эти константы можно использовать в параметре функции вместо флагов:
Набор битовых флагов, управляющих колонками окна редактора и разрешенными типами переменных: RDS_HVAR_F1INDEX Вместе с матрицами разрешить массивы (только при установленном RDS_HVAR_FARRAYS). RDS_HVAR_FARRAYS Разрешить матрицы. RDS_HVAR_FARROFSTRUCT Разрешить матрицы и массивы структур. RDS_HVAR_FCHAR Разрешить тип «char». RDS_HVAR_FDOUBLE Разрешить тип «double». RDS_HVAR_FFLOAT Разрешить тип «float». RDS_HVAR_FINT Разрешить тип «int». RDS_HVAR_FLOGICAL Разрешить логический тип. RDS_HVAR_FNOOFFSET Не показывать колонку смещения к переменной. RDS_HVAR_FNOSTRUCTNAME Запретить ввод имени всей структуры (только при Extended==FALSE). RDS_HVAR_FRUNTIME Разрешить произвольный тип. RDS_HVAR_FSHORT Разрешить тип «short int». RDS_HVAR_FSIGNAL Разрешить сигнальный тип. RDS_HVAR_FSTRING Разрешить строки. RDS_HVAR_FSTRUCT Разрешить структуры. Используемые в этом параметре флаги частично совпадают с флагами функции rdsListVarTypes.RDS_HVAR_FALL все типы переменных; RDS_HVAR_FALLNS все типы, кроме сигналов; RDS_HVAR_FALLPLAIN все простые типы, то есть все, кроме структур, матриц/массивов, строк и произвольных типов; RDS_HVAR_FALLPLAINNS все простые типы, кроме сигналов. - MaxDepth (int)
- Максимальная глубина вложенности матриц (1 – только матрицы простых переменных, 2 – матрицы матриц, 3 – матрицы матриц матриц и т.п.) или −1 для максимальной вложенности (на данный момент RDS поддерживает вложенность до пяти).
- Caption (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку заголовка окна редактора переменных или NULL для стандартного заголовка «Структура переменных».
Возвращаемое значение
TRUE – пользователь закрыл окно редактора кнопкой «», FALSE – пользователь отменил редактирование.
Примечания
Эта функция позволяет пользователю изменить структуру переменных в объекте Vars при помощи стандартного редактора переменных RDS. В зависимости от значения Extended вызывается либо редактор переменных блока с колонками «», «» и т.п., либо более простой редактор структуры, в котором можно вводить только имя, тип и значение для каждого поля и имя самой структуры, если не установлен флаг RDS_HVAR_FNOSTRUCTNAME.
Пример
Примеры использования функции rdsVSExecuteEditor приведены в §2.16.1 и §3.3 руководства программиста.
См. также
rdsVSCreateEditor, rdsListVarTypes, rdsVSApplyToBlock, rdsVSInstallStruct.