Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.28. Вспомогательный объект для работы с модальными окнами
А.5.28.17. Команда RDS_FORMVAL_ITEMINDEX – номер варианта, выбранного в выпадающем списке с фиксированными вариантами
Команда RDS_FORMVAL_ITEMINDEX устанавливает или возвращает номер варианта, выбранного в фиксированном выпадающем списке типа RDS_FORMCTRL_COMBOLIST. Для выпадающего списка типа RDS_FORMCTRL_COMBOEDIT, в котором пользователь может не только выбирать вариант из списка, но и вводить значение с клавиатуры, эту команду использовать нельзя, поскольку, в общем случае, значение поля ввода может не совпадать ни с одним из вариантов списка. Для дополнительного списка в двойном поле RDS_FORMCTRL_LISTANDEDIT эта команда тоже не используется, поскольку для получения и установки номера варианта в этом списке предусмотрена специальная команда RDS_FORMVAL_AUXLISTITEM.
Вызов команды для установки
int iCtrlId= … // Идентификатор поля ввода int iItemNum= … // Номер выбранного пункта rdsSetObjectInt(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX,iItemNum);
или
int iCtrlId= … // Идентификатор поля ввода double dItemNum= … // Номер выбранного пункта rdsSetObjectDouble(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX,dItemNum);
или
int iCtrlId= … // Идентификатор поля ввода RDSCSTR sItemNum= … // Номер выбранного пункта в виде строки (UTF8) rdsSetObjectStrA(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX,sItemNum);
или
int iCtrlId= … // Идентификатор поля ввода RDSWCSTR sItemNum= … // Номер выбранного пункта в виде строки (UTF16) rdsSetObjectStrW(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX,sItemNum);
или (через функцию-псевдоним)
int iCtrlId= … // Идентификатор поля ввода RDSXCSTR sItemNum= … // Номер выбранного пункта в виде строки (кодировка по умолчанию) rdsSetObjectStr(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX,sItemNum);
Вызов команды для чтения
int iCtrlId= … // Идентификатор поля ввода int iItemNum=rdsGetObjectInt(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX);
или
int iCtrlId= … // Идентификатор поля ввода double dItemNum=rdsGetObjectDouble(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX);
или
int iCtrlId= … // Идентификатор поля ввода RDSCSTR sItemNum=rdsGetObjectStrA(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX); // UTF8
или
int iCtrlId= … // Идентификатор поля ввода RDSWCSTR sItemNum=rdsGetObjectStrW(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX); // UTF16
или (через функцию-псевдоним)
int iCtrlId= … // Идентификатор поля ввода RDSXCSTR sItemNum=rdsGetObjectStr(Win,iCtrlId,RDS_FORMVAL_ITEMINDEX); // Кодировка по умолчанию
Параметры и результат
- Win (RDS_HOBJECT)
- Идентификатор вспомогательного объекта для работы с модальным окном, ранее созданного функцией rdsFORMCreate.
- iCtrlId (int)
- Целый идентификатор поля ввода, присвоенный ему при вызове функции rdsFORMAddEdit.
- iItemNum (int)
- Целый номер выбранного в выпадающем списке пункта (пункты нумеруются начиная с нуля). Значение −1 указывает на то, что в списке не выбран ни один пункт.
- dItemNum (double)
- Номер выбранного в выпадающем списке пункта (пункты нумеруются начиная с нуля) в виде вещественного числа. Значение −1 указывает на то, что в списке не выбран ни один пункт.
- sItemNum (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку, в которой записан номер выбранного в выпадающем списке пункта (пункты нумеруются начиная с нуля). Строка «−1» указывает на то, что в списке не выбран ни один пункт. При получении номера пункта функцией rdsGetObjectStr в данном случае возвращается указатель на строку во внутренней памяти объекта Win, этот указатель будет действителен до тех пор, пока выбранный пункт не изменится.
Примечания
Эта команда управляет номером пункта, выбранного в выпадающем списке поля ввода типа RDS_FORMCTRL_COMBOLIST.
Для передачи команды полю ввода можно использовать целые функции rdsSetObjectInt и rdsGetObjectInt, вещественные rdsSetObjectDouble и rdsGetObjectDouble, а также строковые rdsSetObjectStr и rdsGetObjectStr. При использовании строковых функцией строка преобразуется в целое число по правилам функции rdsAtoI.
Пример
Пример использования команды RDS_FORMVAL_ITEMINDEX приведен в §2.13.6 руководства программиста.
См. также
RDS_FORMCTRL_COMBOLIST, rdsFORMCreate, rdsFORMAddEdit, rdsSetObjectInt, rdsGetObjectInt, rdsSetObjectDouble, rdsGetObjectDouble, rdsSetObjectStr, rdsGetObjectStr.