Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установка фокуса на TEdit 
:(
    Опции темы
TechnoMag
Дата 26.6.2014, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет



Не получается установить фокус на поле ввода.
Суть в том, чтобы пользователь сразу начал вводить пароль, а не кликал бы сначала на поле ввода.
В OnActivate главной формы создается диалоговое окно ввода пароля.
При появлении диалогового окна нет фокуса на поле ввода пароля.
Edit1.SetFocus не помогает где бы не писал: OnShow, OnActivate, OnCreate.
Delphi XE2.
PM MAIL ICQ   Вверх
CynicRus
Дата 27.6.2014, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 31.5.2012

Репутация: 2
Всего: 5



А если попробовать вот так:
Код

Form1.ActiveControl := Form1.Edit1;
Form1.SetFocus;


Или сперва вызвать BringToFront() перед передачей фокуса эдиту?
PM MAIL   Вверх
kami
Дата 27.6.2014, 07:20 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



A Edit1.TabOrder = 0 ?
PM MAIL WWW   Вверх
TechnoMag
Дата 12.7.2014, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет



Цитата(CynicRus @ 26.6.2014,  23:02)
А если попробовать вот так:
Код

Form1.ActiveControl := Form1.Edit1;
Form1.SetFocus;


Или сперва вызвать BringToFront() перед передачей фокуса эдиту?

Пробовал. Почему-то не получается. Для ввода пароля используется TLabeledEdit. Менял на простой TEdit - результат тот же.
PM MAIL ICQ   Вверх
PointerToNil
Дата 12.7.2014, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 17.6.2013

Репутация: 2
Всего: 6



1. edit.tabstop часом не false?
2. диалогу часом parent'а не назначаешь?
PM MAIL   Вверх
TechnoMag
Дата 12.7.2014, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет



1. TabStop :=  true;
2. Только Owner: TForm.Create(mainForm)
PM MAIL ICQ   Вверх
PointerToNil
Дата 12.7.2014, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 17.6.2013

Репутация: 2
Всего: 6



Сделай минимальный проект, воспроизводящий ошибку. Ибо не воспроизводится.
Пытаясь, наверняка разберешься сам. Если нет - выложишь.
PM MAIL   Вверх
PointerToNil
Дата 12.7.2014, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 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); - случайно помог, гарантий полной корректности нет!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.