![]() |
|
![]() ![]() ![]() |
|
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
имеется форма, но которой есть 2 компонента MaskEdit. необходимо, чтобы когда юзер нажимал первый раз Enter, то проверялось, есть ли в первом поле какая то надпись, и если есть, тоактивным бы становилась второй компонент, а если нету никакой записи, то выводилось бы сообщение...
я наклепал вот такой код, но что то он работает несовсеми так, как надо....
что у меня не так сделано?? подскажите пожалуйста! |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 7 Всего: 122 |
|
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
Rodman , выдал вот такие ошибки
[C++ Error] Unit3.cpp(27): E2034 Cannot convert 'AnsiString' to 'const char *' [C++ Error] Unit3.cpp(27): E2342 Type mismatch in parameter 'Str' (wanted 'const char *', got 'AnsiString') [C++ Error] Unit3.cpp(32): E2268 Call to undefined function 'ShowMesage' как исправить? |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
StrLen(MaskEdit1->Text)
Заменить на MaskEdit1->Text.Length() или на StrLen(MaskEdit1->Text.c_str()) |
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
Anikmar, сделал, но эффект тот же самый, что и с моим вариантом...при нажатии на Enter при пустом поле активным все равно становится второй компонент... я уж не знаю, что и делать!
![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
А изначально где фокус?
Вы ставите обработчик нажатия клавиши на конкретный компонене MaskEdit. Т.е., чтобы обработчик сработал, необходим фокус именно на этом компоненте. Если обработка клавиши нужна в рамках формы, то попробуйте поставить обработчик на событие формы. Например, OnShortcut |
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
Anikmar , изначально у меня на событии OnActivate у формы стоит MaskEdit1->SetFocus();
|
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Возможно не активен CanFocus или лучше сделать в событии OnPaint
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
В никаких событиях прописывать ничего не надо, просто пишешь код в OnKeyDown:
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
Klin , все равно такая же история....давайте поподробней расскажу что у меня за история....
есть программа.... при ее открытии открываются 2 формы... активная форма, как раз та, на которой находятся компоненты MaskEdit. так вот вот...эта форма, как бы выполняет регистрацию пользователя...т.е. пользователь вволит свои данные, а потом в конце работы программы эти данные( фамилия, имя) выводятся на экран при выводе результатов... я хочу сделать, чтобы если пользователь не ввел в какое какое либо из полей данные, выводилось ссобщение о том что он не ввел данные... вот код этой формы....
так вот! когда пользователь не ввел в поле "имя" свое имя, то сообщение выводится, а когда не ввел фамилию, то активным становится второй MaskEdit, хотя вместо этого должно выводится сообщение о том, что он не ввел фамилию! помогите исправить, что у меня не так!!! я уж не знаю, что делать, вроде все варианты перепробовал! |
|||
|
||||
Anikmar |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
По-моему неправильное условие:
Надо так:
или так:
|
||||||
|
|||||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
пробовал и так! но как ни странно, вашим методом она работает неправильно.... при нажатии на Enter тогда прост оактивируется кнопка BitBtn!!! Это сообщение отредактировал(а) susanin - 15.4.2007, 22:04 |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Там точно else не пропущен? Можно еще разок взглянуть на ваш код, который неправильно работает?
|
|||
|
||||
Klin |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Я уже писал, как нужно составить условие! Пожалуйста, программисты, будьте внимательны в вашем коде.
Вы пишете:
Здесь 2 ошибки: 1) "||" - означает "или", а нужно использовать "и" (&&) 2) Перевожу ваш код:
Ваша ошибка в не правильном условии, надо писать так:
Это сообщение отредактировал(а) Klin - 15.4.2007, 23:11 -------------------- Я человек - попробуйте обвинить меня за это. |
||||||
|
|||||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Однако, я не считаю, ваш код полным, поскольку после того как пользователь ввел данные, то кнопка становится активной. После этого юзер может спокойно удалить все данные и наслаждаться своей смекалкой. Поэтому я предлагаю поступить так:
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |