![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| TechnoMag |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
Не получается установить фокус на поле ввода.
Суть в том, чтобы пользователь сразу начал вводить пароль, а не кликал бы сначала на поле ввода. В OnActivate главной формы создается диалоговое окно ввода пароля. При появлении диалогового окна нет фокуса на поле ввода пароля. Edit1.SetFocus не помогает где бы не писал: OnShow, OnActivate, OnCreate. Delphi XE2. |
|||
|
||||
| CynicRus |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: 2 Всего: 5 |
А если попробовать вот так:
Или сперва вызвать BringToFront() перед передачей фокуса эдиту? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
A Edit1.TabOrder = 0 ?
|
|||
|
||||
| TechnoMag |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
Пробовал. Почему-то не получается. Для ввода пароля используется TLabeledEdit. Менял на простой TEdit - результат тот же. |
||||
|
|||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 2 Всего: 6 |
1. edit.tabstop часом не false?
2. диалогу часом parent'а не назначаешь? |
|||
|
||||
| TechnoMag |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
1. TabStop := true;
2. Только Owner: TForm.Create(mainForm) |
|||
|
||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 2 Всего: 6 |
Сделай минимальный проект, воспроизводящий ошибку. Ибо не воспроизводится.
Пытаясь, наверняка разберешься сам. Если нет - выложишь. |
|||
|
||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 2 Всего: 6 |
Ага, получилось.
С ShowModal - есть такой глюк. Причем Edit1 таки в фокусе, что подтверждается переключением по альт-таб на другое приложение и затем обратно. Но фокус не показывается. Возможно, потому, что после вызова твоего обработчика MainForm.OnActivate, VCL делает еще что-то касающееся активации этой MainForm, при этом отображение фокуса слетает. выходы: а) Show вместо ShowModal б) вызывать в OnShow вместо OnActivate - с фокусом ОК, но главная не успевает нарисоваться (наверное, так не годится) в) вызывать не сразу в OnActivate, а отложенно (по таймеру, Application.OnIdle+флаг, свой спец. PostMessage и т.п.) г) перед DialogForm.ShowModal сделать PostMessage(DialogForm.Handle, WM_ACTIVATE, 1, 0); - случайно помог, гарантий полной корректности нет! |
|||
|
||||
![]()
|
| Правила форума "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. |