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

Описания RDS

Приложения

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

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

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

А.5.28.17. Команда RDS_FORMVAL_ITEMINDEX – номер варианта, выбранного в выпадающем списке с фиксированными вариантами

# Приложения

## Приложение А. Функции, константы и структуры 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.