![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Как можно в Delphi 7 сделать так чтобы в TEdit можно было вводить только определённые символы?
Это сообщение отредактировал(а) pomogite - 3.5.2006, 15:44 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
На палитре additional есть компонент TMaskEdit - он для этого и служит.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| XSInet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 4.1.2006 Репутация: нет Всего: нет |
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if Key = 'L' then MessageBoxA(0, 'LOL', nil,0); end; Событие OnKeyPress |
|||
|
||||
| Matematik |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
|
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
-------------------- Ll 2 |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Нужно создать константу - множество с набором/последовательностью запрещённых символов, а затем в прогремме при помощи оператора in проверять наличие символа в множестве:
Это сообщение отредактировал(а) Yanis - 3.5.2006, 16:06 |
|||
|
||||
| pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
как можно сделать фильтрацию вот в этом коде?
Это сообщение отредактировал(а) pomogite - 3.5.2006, 16:15 |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
А в справку не пробовал заглядывать? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
pomogite, какие символы должны оставаться? Маскедит - требует определенного числа символов иначе остальное будет заполнено пробелами. Если число символов неизвестно то удобней разбирать строку. Способ с обработчиком KeyPress имеет один недостаток - если текст вставлять при помощи буфеа обмена, то он пойдет в обход этого обработчика.
Уточните задачу, какие символы не должны попадать и что за данные вводятся -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Вводится ip адресс
|
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Добавлено @ 16:41 если не нравятся подчеркивания, то
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
а как сделать чтоб урл вводить тоесть только / . и англ. буквы
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
pomogite, с этим хуже, длина текста не определена и красивого решения уже не получится, нужно будет обрабатывать событие onChange, а в нем перебирать символы и проверять все ли символы допустимы.
Для коректного решения этой задачи можно воспользоваться "тяжелой артилерией" - регулярными выражениями и проверять имеется ли в тексте регулярное выражение соответствующее интернет адресу если да, то брать его, а лишний текст удалять. Но это не простой вариант, кроме того придется скачивать специальный компонент и учить синтаксис регулярных выражений. Это сообщение отредактировал(а) alexeis1 - 3.5.2006, 17:04 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
мда похоже придётся оставить всё как есть...
|
|||
|
||||
| syan66 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.12.2005 Репутация: нет Всего: нет |
Ой, ну зачем же так все усложнять......
Для ручного ввода:
Для copy/paste:
|
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
syan66, и что ваш код обнаружит ошибку в такой строке
www.http://ya.ru. Я же сказал для КОРРЕКТНОЙ! - кроме того в строке могут идти параметры для php например адресс этого вопроса http://forum.vingrad.ru/index.php?showtopic=94422&st=15 правельный, а ваш код скажет, что нет... -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| syan66 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.12.2005 Репутация: нет Всего: нет |
Отлично! А правила поменять нельзя? В данном конкретном случае (для url) :
1. добавить в set недостающие символы 2. описать правило, по которому http:// всегда Pos(1) ???? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
syan66, О! Как раз это и делает TRegExpr - красиво, быстро, а главное унифицировано. Более того позволяет гибко менять эти самые правила без изменения исходного кода!
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| vv3 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 29.4.2006 Репутация: нет Всего: нет |
Да, я же не против... Просто я лично не люблю сторонние компоненты, которые через год искать приходится, поскольку Delphi переустанавливал, необходимости в них не было, потом старый проект поднять приходится, а тут... Class not found
(syan66 - that's me) |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Не все же так часто свои проекты переделывают... |
|||
|
||||
| vv3 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 29.4.2006 Репутация: нет Всего: нет |
||||
|
||||
| SniyLSD |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 28.5.2008 Репутация: нет Всего: нет |
А как сделать, чтобы определенны й символ, если печатается в TEdit, то только первым, или вообще не печатается, вроде код должен получиться таким :
какой оператор нужно дописать? нужно сделать, чтобы знак '-' печатался только в начале или вообще не печатался, если первый символ уже напечатан. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |