Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2011, 15:40   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как правильно сделать Edit в фокусе?

Открываю форму модально Form1.Showmodal; пишу Edit1.SetFocus, однако курсор в нем не появляется. А если открывать форму просто Form1.Show; тогда как обычно отображается и мигает. В чем проблемма с модальным окном не ясно.
Dux вне форума Ответить с цитированием
Старый 07.10.2011, 20:35   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
Form1.Showmodal;
ВЕесь последующий код будкт выполнен ПОСЛЕ ЗАКРЫТИЯ.
Edir1.SetFocus; //ПОСЛЕ закрытия
Код:
Form1.Show;
показываем и НЕ останавливаясь проходим дальще.
Edir1.SetFocus; //сразу после показа
можно на событие Onactivate повесить
Код:
procedure TForm1.OnActivate(sender: Tobject);
begin
  Edit1.SetFocus;
end;
можно еще очень неуклюжий костыль.
Код:
form1.show;
edir1.setfocus;
form1.hide;
form1.showModal;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 07.10.2011 в 21:08.
evg_m вне форума Ответить с цитированием
Старый 07.10.2011, 23:02   #3
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

При вызове модальным способом, прекращается исполнения кода до закрытия этой формы. Поэтому устанавливайте фокус в событии OnShow формы или в редакторе свойств
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 08.10.2011, 09:09   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Иногда после разворота формы фокус ввода уходит на другой элемент формы, поэтому я в таких формах стараюсь делать один-единственный Edit, чтоб фокус не терялся. А другие компоненты либо скрываю, либо обхожусь без них
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 08.10.2011, 11:45   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если аккуратно пользоваться свойством TabOrder компонентов, то никаких SetFocus не надо. Исключение PageControl - если он активизируется первым при развороте формы, то фокус попадает на заголовок TabSheet
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сделать запрос Arkuz SQL, базы данных 2 01.09.2011 20:07
как правильно сделать вход ilushka2306 PHP 3 13.05.2011 01:48
Как правильно считать сторку из поля edit? reynevan Win Api 7 16.07.2010 02:21
Как правильно сделать выборку Minotavr_x86 БД в Delphi 9 04.03.2009 19:56
Как определить, в фокусе ли EDIT поле. USB2.0 Win Api 5 02.11.2008 21:07