Неправильно отрабатывает CanFocus в Delphi 2010

Рейтинг: 1Ответов: 1Опубликовано: 16.04.2015

Если кратко - есть форма на которой динамически создается фрейм. На фрейме размещен Edit. В какой то момент создается фрейм и устанавливается SetFocus для Edit следующим образом:

if Edit1.CanFocus then
  Edit1.SetFocus; 

Но установка фокуса происходит до показа формы, соответственно в результате выполнения получаем следующую ошибку:

Cannot focus a disabled or invisible window

Вопрос: Может есть какое то стандартное решение, или исправленный вариант для CanFocus? Интересует больше вопрос почему некорректно отрабатывает CanFocus.

Ответы

▲ 1Принят

Правильно так:

if Edit1.Showing and Edit1.Enabled then
  Edit1.SetFocus; 

Документация TWinControl.Showing.