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

Описания RDS

Приложения

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

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

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

А.5.28.2. rdsFORMAddEdit – добавить поле ввода

# Приложения

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

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

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

##### А.5.28.2. rdsFORMAddEdit – добавить поле ввода

Функция rdsFORMAddEdit добавляет в объект для работы с модальным окном новое поле ввода.

      void RDSCALL rdsFORMAddEditA(
        RDS_HOBJECT Win,  // Объект
        int TabId,        // Идентификатор вкладки
        int CtrlId,       // Идентификатор поля
        DWORD Type,       // Тип (RDS_FORMCTRL_* | RDS_FORMFLAG_*)
        RDSCSTR Caption,  // Заголовок поля (UTF8)
        int Width         // Ширина поля или -1
      );
      void RDSCALL rdsFORMAddEditW(
        RDS_HOBJECT Win,  // Объект
        int TabId,        // Идентификатор вкладки
        int CtrlId,       // Идентификатор поля
        DWORD Type,       // Тип (RDS_FORMCTRL_* | RDS_FORMFLAG_*)
        RDSWCSTR Caption, // Заголовок поля (UTF16)
        int Width         // Ширина поля или -1
      );
      // Функция-псевдоним
      void RDSCALL rdsFORMAddEdit(
        RDS_HOBJECT Win,  // Объект
        int TabId,        // Идентификатор вкладки
        int CtrlId,       // Идентификатор поля
        DWORD Type,       // Тип (RDS_FORMCTRL_* | RDS_FORMFLAG_*)
        RDSXCSTR Caption, // Заголовок поля (кодировка по умолчанию)
        int Width         // Ширина поля или -1
      );

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

RDS_VHoIIDwSI (для UTF8) или RDS_VHoIIDwWsI (для UTF16)

Параметры

Win(RDS_HOBJECT)
  Идентификатор вспомогательного объекта для работы с модальным окном, ранее созданного функцией rdsFORMCreate.
TabId(int)
  Целый идентификатор вкладки окна или боковой панели, на которую будет добавлено поле. Вкладки создаются вызовами rdsFORMAddTab. Если в окне нет ни вкладок, ни боковой панели, параметр игнорируется.
CtrlId(int)
  Произвольный целый идентификатор, который будет присвоен созданному полю ввода. Вся дальнейшая работа с этим полем будет вестись по этому идентификатору.
Type(DWORD)
  Одна из констант RDS_FORMCTRL_*, указывающая тип создаваемого поля ввода, объединенная битовым ИЛИ с флагами поля RDS_FORMFLAG_*. Типы и флаги полей подробно рассматриваются в приложении А.5.28.3. В окно может быть добавлено поле ввода одного из следующих типов:

  RDS_FORMCTRL_BUTTON | Кнопка, реакция на которую определяется функцией обратного вызова.
  RDS_FORMCTRL_CHECKBOX | Одиночный флаг.
  RDS_FORMCTRL_COLOR | Кнопка выбора цвета..
  RDS_FORMCTRL_COMBOEDIT | Поле ввода с выпадающим списком готовых вариантов заполнения.
  RDS_FORMCTRL_COMBOLIST | Выпадающий список без возможности ручного ввода значения.
  RDS_FORMCTRL_DIRDIALOG | Кнопка выбора папки.
  RDS_FORMCTRL_DISPLAY | Индикация значения.
  RDS_FORMCTRL_EDIT | Обычное поле ввода на одну строку текста.
  RDS_FORMCTRL_FONTSELECT | Кнопка выбора шрифта.
  RDS_FORMCTRL_HOTKEY | Поле ввода для сочетания клавиш.
  RDS_FORMCTRL_LABEL | Надпись без поля ввода.
  RDS_FORMCTRL_LISTANDEDIT | Поле ввода с дополнительным выпадающим списком.
  RDS_FORMCTRL_MULTILINE | Поле ввода нескольких строк текста.
  RDS_FORMCTRL_NONVISUAL | Скрытое поле.
  RDS_FORMCTRL_OPENDIALOG | Кнопка с диалогом открытия файла.
  RDS_FORMCTRL_PAINTBOX | Область программного рисования.
  RDS_FORMCTRL_RADIOBUTTON | Флаг, связанный с другими флагами – включен может быть только один.
  RDS_FORMCTRL_RANGEEDIT | Два поля ввода для задания диапазона значений.
  RDS_FORMCTRL_SAVEDIALOG | Кнопка с диалогом сохранения файла.
  RDS_FORMCTRL_UPDOWN | Поле ввода со стрелками вверх и вниз.

  Для установки и чтения значения полей ввода используется команда RDS_FORMVAL_VALUE, но для некоторых типов полей существуют дополнительные команды: например, для поля ввода со стрелками можно установить шаг изменения значения, для поля с выпадающим списком – список вариантов и т.п. Константа типа поля ввода RDS_FORMCTRL_* в параметре Type может объединяться с флагами RDS_FORMFLAG_*, модифицирующими внешний вид поля:

  RDS_FORMFLAG_CHECK | Слева от заголовка поля находится флаг, управляющий разрешением и запрещением этого поля.
  RDS_FORMFLAG_CHECKRADIO (только вместе с флагом RDS_FORMFLAG_CHECK). | Разрешающий флаг слева от заголовка поля входит в группу взаимоисключающих флагов.
  RDS_FORMFLAG_DISABLED | Поле ввода запрещено и отображается серым цветом.
  RDS_FORMFLAG_LCENTER | Заголовок поля ввода выровнен по центру.
  RDS_FORMFLAG_LINE | Под полем располагается рельефная линия.
  RDS_FORMFLAG_LRIGHT | Заголовок поля ввода выровнен по правому краю.

Caption(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку с заголовком поля ввода. В большинстве полей заголовок размещается слева от самого поля и, если не установлены флаги RDS_FORMFLAG_LRIGHT или RDS_FORMFLAG_LCENTER, выровнен по левому краю. В полях типа RDS_FORMCTRL_CHECKBOX и RDS_FORMCTRL_RADIOBUTTON заголовок размещается справа от галочки, по которой может щелкать пользователь, и всегда выровнен по левому краю. В полях типа RDS_FORMCTRL_MULTILINE и RDS_FORMCTRL_PAINTBOX заголовок размещается над полем (поле занимает всю ширину окна). Если для поля задан флаг RDS_FORMFLAG_CHECK, дополнительная галочка будет размещаться слева от заголовка.
Width(int)
  Ширина поля в точках экрана или −1 для ширины по умолчанию. Для некоторых типов полей ввода (RDS_FORMCTRL_MULTILINE, RDS_FORMCTRL_PAINTBOX, RDS_FORMCTRL_CHECKBOX, RDS_FORMCTRL_RADIOBUTTON) ширина устанавливается автоматически и значение Width игнорируется.

Примечания

Эта функция добавляет в объект Win на вкладку TabId поле ввода типа Type с заголовком Caption и идентификатором CtrlId. Поля добавляются сверху вниз, то есть каждый следующий вызов rdsFORMAddEdit добавляет поле на вкладку TabId непосредственно под последним добавленным полем. Идентификаторы полям можно присваивать произвольно – главное, чтобы в одном окне не было двух полей с одинаковыми идентификаторами.

Константы RDS_FORMFLAG_* позволяют изменить выравнивание заголовка поля ввода, а также добавить слева от этого заголовка флаг, который будет разрешать или запрещать ввод данных в поле.

Пример

Примеры использования функции rdsFORMAddEdit приведены в руководстве программиста: §2.7.2, §2.10.1 и др.

См. также

rdsFORMCreate, rdsFORMAddTab, RDS_FORMVAL_VALUE, RDS_FORMVAL_ENABLED, rdsFORMEnableSidePanel, типы и флаги полей ввода.