Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле, обязательное для ввода [D5, NT4]


old_mole ©   (2002-11-20 15:40:00) 

Eсть на форме TEdit. Как мне не дать юзеру уйти с него, если содержимое пусто. Я понимаю, что надо перехватывать WM_KILLFOCUS, а вот дальше что?


Anatoly Podgoretsky   (2002-11-20 16:26:00) [1]

Тогда другое дело, обрабатывай в OnExit но введи признак выхода, что бы не пришлось уходить по трем клавишам, дополнительно делай проверку при выход по клавише ОК если она назначено клавишей по умрочанию. При выходе в OnExit возвращай по SetFocus, а при выходе по ОК дополнительн еще и ModalResult := mrNone
Хороше при этом оповестить пользователя о проблеме, но чаще полезнее проверку только при попыике закрытия формы


old_mole   (2002-11-20 16:15:00) [2]

>Anatoly Podgoretsky
"никогда не выйти" - это я конечно погорячился, выйти можно конечно, например по Esc


Anatoly Podgoretsky   (2002-11-20 16:07:00) [3]

Какая разница, ты же даже до конца клавишу не успеешь нажать, меня же более интересует ответ на мой уточняющий вопрос "никогда не выйти" и также как быть с клавишй по умолчанию, в эиом случае этого события не будет


Starkom   (2002-11-20 15:53:00) [4]

2 Skyle: SetFocus меньше времени при выполнении съест, чем ActiveControl:=...


old_mole   (2002-11-20 15:52:00) [5]

Благодарствуйте господа


Troll   (2002-11-20 15:49:00) [6]

какие мы все умные, да еще и быстрые!!! :))))


Skyle   (2002-11-20 15:49:00) [7]

А может как-нибудь так?
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Length(Trim(Edit1.Text)) = 0 then
begin
ShowMessage(Не, ну нихрена себе!!!");
Self.ActiveControl := Edit1;
end;
end;


Troll   (2002-11-20 15:47:00) [8]

проверить содержимое TEdit и выполнить SetFocus.


Anatoly Podgoretsky   (2002-11-20 15:45:00) [9]

Никогда не уйти?


OlegMsc   (2002-11-20 15:44:00) [10]

на OnExit

if Edit.Text="" then Edit.SetFocus;


Starkom   (2002-11-20 15:44:00) [11]

на OnExit фокус назад и кидай.
Хотя я не могу въехать в разницу между WM_EXIT и WM_KILLFOCUS


Наверх

Титульная страница Поиск, карта сайта Написать письмо