![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 18.07.2010
Сообщений: 3
|
![]()
мне нужно сделать так чтобы в эдите могли находиться только определенные символы, типа латиница, нижнее подчеркивание.
пробовал два варианта... но оба у меня вызывают ошибку range check error во время работы проги. вариант 1) Код:
вариант 2) Код:
Код:
поможите разобраться плз... Последний раз редактировалось Stilet; 19.07.2010 в 12:56. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 28.07.2009
Сообщений: 189
|
![]() Код:
код на паскале, ну думаю на С++ переведешь... смысел один и тот же
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com Последний раз редактировалось Stilet; 19.07.2010 в 13:03. |
![]() |
![]() |
![]() |
#3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Лучше так:
Код:
А еще лучше проверять вводимый символ в параметр Key события OnKeyPress и если тот не такой как нужно key=0; Или взять MaskEdit и не париться.
I'm learning to live...
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 13.07.2010
Сообщений: 346
|
![]()
Вообще-то это делается в событии OnKeyPress
проверка делается рангом или тупо - массивом.
Non est culpa vin, sed culpa bibentis
|
![]() |
![]() |
![]() |
#5 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]() Код:
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 18.07.2010
Сообщений: 3
|
![]()
у меня была кэпская ошибка...
я в цикл начинал с 0... видимо в эдит все начинается с 1... не знал... |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() |
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 18.07.2010
Сообщений: 3
|
![]()
итак.. заработало...
выглядит вот так вот: for(int f=1; f <= StrToInt(e1.Length()); f++){ if( (e1[f]<'0')||(e1[f]>'9')&&(e1[f]!='_') ) {Edit1->SetFocus(); ShowMessage ("Некорректные символы в номере столбца.Вводите только цифры,вместо пробела вводится нижняя черта."); break; } трудность теперь в следующем: break он прекращает действия оператора, и передает действие на оператор, следующий за законченным, то биш на for получается что break бесполезен и прога многократно выводит предупреждение замес одного... как эт поправить? |
![]() |
![]() |
![]() |
#9 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
![]()
Можно создать булеву переменную, добавить ее в в условие цикла и при показе сообщения изменить ее значение на противоположное.
Можно вместо break использовать goto и переходить дальше
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Символы! | darter96 | Помощь студентам | 3 | 25.02.2010 20:01 |
символы | Nostalgia | Помощь студентам | 12 | 30.12.2008 20:19 |
СИМВОЛЫ - помогите решить задачу на символы | kiko | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 30.11.2008 16:09 |
символы | Rend1 | Общие вопросы Delphi | 1 | 10.04.2008 01:39 |