» Text: текстовое поле/ввод пароля

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 17.05.2014

Примечание. Вы можете создавать отдельный элемент Password для ввода пароля в NIS Edit, все нижеописанные данные подходят и для Password элемента, просто я решил объеденить 2 элемента в 1 и не копировать весь этот текст в элемент Password
Единственное различие это в том, что если вы создаёте элемент Password в NIS Edit, то вам не нужно указывать в параметре Flags значение PASSWORD

Для создания взаимодействующего элемента:
Данный элемент может иметь несколько типов взаимодействующего элемента:
1. Ваша функция в коде сработает до того, как на экране покажется вводимый пользователем символ:
NOTIFY=ONTEXTUPDATE

2. Ваша функция в коде сработает после того, как на экране покажется вводимый пользователем символ:
NOTIFY=ONTEXTCHANGE


Флаги элемента

Значение параметра Flags может содержать следующие значения (возможно комбинировать, разделяя вертикальной чертой)
ONLY_NUMBERS - позволить вводить только цифры
READONLY - сделать элемент "только для чтения", т.е. нельзя будет ввести данные
PASSWORD - сделать элементом ввода пароля, вводимые символы будут отображаться символом звёздочки *


Дополнительные параметры элемента

В секции с настройкой элемента могут быть использованы следующие параметры:
MinLen - минимально требуемое количество введёных символов в поле, если указанного количества символов не будет в поле - пользователь не сможет продолжить установку и перейти на следующую страничку
MaxLen - максимальное количество введёных символов в поле, больше указанного значения символов пользователь не сможет ввести в поле
ValidateText - сообщение со значком предупреждения, которое выведится пользователю после нажатия на кнопку "Далее/Установить", если он введёт меньше символов, чем требуется в параметре MinLen

Пример секции настройки текстового поля, с минимально необходимым количеством символов "2" и максимальным 5, с выводом сообщения:
[Field 1]
Type=Text
Left=1
Right=42
Top=78
Bottom=88
Flags=
MinLen=2
MaxLen=5
ValidateText=Вы ввели меньше 2 символов!


Чтение введённого значения пользователем

Всё достаточно просто, необходимо прочитать значение параметра State
ReadINIStr $0 "$PLUGINSDIR\Project.ini" "Field 1" "State"


Сообщения Windows

Вы можете после инициализации или в момент работы использовать следующую команду для назначения текста текстовому полю:
SendMessage $HWND ${WM_SETTEXT} "" "STR:Мой текст"
где $HWND - HWND элемента
Либо очистить текстовое поле, просто не вводите ваш текст:
SendMessage $HWND ${WM_SETTEXT} "" "STR:"