![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка: Cannot focus a disabled or invisible window
Kventin © (2003-01-25 15:38:00)Есть процедура:
procedure Myform1.BtClick(...;
begin
...
MyForm2.show;
...
Myform2.hide; //после етого появляєтся ошибка
// Cannot focus a disabled or invisible window
...
end;
ПОчему ета ошибка появляэтся? Кто нибудь знает?
Я пробовал перед Myform2.hide; писать
Myform1.BringToFront;
Myform1.show;
Myform1.Visible:=true;
ничего не помагаэт
Stager (2003-01-25 20:41:00) [1]2 Юрий Зотов.
Понял, спасибо, буду использовать.
С уважением, Алексей.
Юрий Зотов (2003-01-25 20:16:00) [2]Можно и проще - Windows.SetFocus(Edit1.Handle). При этом, если Edit1 не может получить фокус, то ничего не происходит, но и Exception не возникает. Значит try-except не нужны, а в итоге экономится машинный код (поскольку любой блок try - это немалые накладные расходы).
Stager (2003-01-25 19:33:00) [3]2 Kventin
Абсолютно согласен с Юрием. От себя добавлю, что эта ошибка часто бывает, когда выполняется метод SetFocus. Чтобы не заниматься развернутой интеллектуальной обработкой, я обычно пользуюсь конструкцией:
try
Edit1.SetFocus;
except
end;
C уважением, Алексей.
Юрий Зотов (2003-01-25 17:42:00) [4]После Myform2.hide происходит какое-то обращение к Myform2 (или к одному из ее контролов), которое требует, чтобы Myform2 была видимой. Myform1 здесь ни при чем.
Пройдите отладчиком и найдите ТОЧНОЕ место.
Kventin (2003-01-25 15:43:00) [5]Да.
Вызываю из обработчика клика по некоторой кнопке.
harismatik (2003-01-25 15:40:00) [6]А у тебя форма с которой вызывается окно видимо и доступно? Откуда ты его вызываешь?