Приложения
Приложение А. Функции, константы и структуры 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_FORMVAL_VALUE, но для некоторых типов полей существуют дополнительные команды: например, для поля ввода со стрелками можно установить шаг изменения значения, для поля с выпадающим списком – список вариантов и т.п. Константа типа поля ввода RDS_FORMCTRL_* в параметре Type может объединяться с флагами RDS_FORMFLAG_*, модифицирующими внешний вид поля: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_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, типы и флаги полей ввода.