![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в FormShow [D5, WinXP]
Marat © (2005-01-19 07:33:00)Здравствуйте, мастера. В событии FormShow я прописываю
Form1.Position:=poScreenCenter;
При первой загрузке все проходит нормально. А вот если я закрываю форму и открываю ее снова, то выдается ошибка: Project raised exception class EInvalidOperation with message 'Cannot change Visible in OnShow or OnHide'. Process stoped. Use Step or Run to continue. Что делать?
Erik1 (2005-01-19 11:32:00) [1]Самое главное Form1 .Position:=poScreenCenter; Form1 - убрать!
Antonn (2005-01-19 08:33:00) [2]
> Нашел в чем собака порыта.
Ну объявил-бы, а то заитриговал и свалил :)
Marat (2005-01-19 08:31:00) [3]Все. Нашел в чем собака порыта. Спасибо всем!!!
Marat (2005-01-19 08:26:00) [4]Понятно дело искал. На вид эта форма ничем не отличается от остальных, но вот есть в ней эта особенность. Может быть при закрытии формы чего-нибудь не дозакрывается?
KSergey (2005-01-19 08:18:00) [5]> [4] Marat © (19.01.05 08:02)
> Проблема вообще такая. При создании формы свойство Position
> автоматически выставлено poScreenCenter. При первой загрузке
> так и выходит. Но после закрытия формы и вторичного ее открытия
> форма почему-то отпрыгивает влево и вверх, но не в самый
> угол экрана.
Ищите где в коде ее "отпрыгивают"
Сама по себе форма никуда никогда не прыгает
Ну разве что пользователь ее утянул - но опять же не сама, верно?
^!^ (2005-01-19 08:14:00) [6]Да че уж там... пиши тогда уж в OnShow типа:
Left := (Screen.Width - Width) div 2;
Top := (Screen.Height - Height) div 2;
Marat (2005-01-19 08:02:00) [7]Проблема вообще такая. При создании формы свойство Position автоматически выставлено poScreenCenter. При первой загрузке так и выходит. Но после закрытия формы и вторичного ее открытия форма почему-то отпрыгивает влево и вверх, но не в самый угол экрана. Поэтому я попытался в событии FormShow прописать Form1.Position:=poScreenCenter;
и попал в вышеуказанную ошибку.
Antonn (2005-01-19 07:57:00) [8]
> А как такое может быть?
???? Не понял, в чем проблема. Наверно сначала устанавливаются параметры а только потом они используются...
Marat (2005-01-19 07:41:00) [9]А как такое может быть?
Kerk (2005-01-19 07:38:00) [10]Marat © (19.01.05 7:33)
Form1.Position:=poScreenCenter;
видимо FormShow вызывается ДО того как форма показана.