Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка в 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 вызывается ДО того как форма показана.


Наверх

Титульная страница Поиск, карта сайта Написать письмо