Вопрос № 105946: Здравствуйте, я тут не могу реализовать один момент на делфи (в приложении), надо чтобы пользователь ввел в Combobox ник, отве чающий условиям этим.
Заранее спасибо кто поможет...
Вопрос № 105.946
Здравствуйте, я тут не могу реализовать один момент на делфи (в приложении), надо чтобы пользователь ввел в Combobox ник, отве чающий условиям этим.
Заранее спасибо кто поможет
Отвечает: Виктор Пырлик
Здравствуйте, Исаак Моисеевич!
Используйте событие OnKeyPress компонента ComboBox для запрета/контроля вводимых символов
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin if not(Key in [#27,#8]) then //можно редактировать begin if Length(ComboBox1.Text)>16 then Key := #0 //если длина больше 16 уходим else if(ComboBox1.SelStart=0)then //если первый симол if (Key in ['.','-','_'])then Key := #0;//запрешаем эти знаки end; end;
или
проверку полного введенного имени по событию OnExit procedure TForm1.ComboBox1Exit(Sender: TObject); var s:String; begin s := ComboBox1.Text; if(Length(s)>16) then // если длина больше 16 begin MessageBox(GetActiveWindow,'Введено длинное имя','Ошибка имени',MB_OK+MB_ICONWARNING); ComboBox1.SetFocus; end else if( s[1] in ['.','-','_']) then // тут не допустимые символы begin
ComboBox1.SelStart := 0; ComboBox1.SelLength := 1; MessageBox(GetActiveWindow,'Введено неверное имя','Ошибка имени',MB_OK+MB_ICONWARNING); ComboBox1.SetFocus; end; end;
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Практикант)
Ответ отправлен: 18.10.2007, 18:19 Оценка за ответ: 5 Комментарий оценки: Я сделал с первым вариантом - там кода меньше, следовательно памяти меньше занимать будет программа.
Отвечает: Degtyarev Anton
Здравствуйте, Исаак Моисеевич!
Можете попробовать вот эту функцию, в её параметры нужно пуказать ваш КомбоБокс
Не забудте её объявить
Приложение:
--------- Сколько волка не корми, а слон всё равно толще
Ответ отправил: Degtyarev Anton (статус: 1-ый класс)
Ответ отправлен: 19.10.2007, 10:38 Оценка за ответ: 5