Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2014, 17:26   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос WindowState и Show

Доброго времени суток!
Стало интересно как будет правильно
Код:
  Form2.Show;
  Form2.WindowState := wsNormal;
или
Код:
  Form2.WindowState := wsNormal;
  Form2.Show;
Shouldercannon вне форума Ответить с цитированием
Старый 11.09.2014, 19:00   #2
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,392
По умолчанию

Правильно-правильно не знаю, Но я всегда пишу
Код:
 Form2.ShowModal;
И форму который отображайте , есть свойства Position --Установите-- poScreenCenter = Что форма отображалось по центру экрана

Последний раз редактировалось xxbesoxx; 11.09.2014 в 19:04.
xxbesoxx вне форума Ответить с цитированием
Старый 11.09.2014, 19:14   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

xxbesoxx, Show и ShowModal разные методы и поведение окна после их вызова очень различается. Насчет всегда пишу - не модальных окон из принципа не используете?
Код:
Стало интересно как будет правильно
Работать будет в обоих случаях, для отображения нормального окна использовал бы 2-ой вариант
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.09.2014, 21:08   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и я бы использовал второй вариант.
Мне кажется, что как-то логичнее сначала установить все необходимые характеристики окна и только потом показать его пользователю (точнее, позволить ему работать с этим окном).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.09.2014, 02:25   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,894
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Доброго времени суток!
Стало интересно как будет правильно
Код:
  Form2.Show;
  Form2.WindowState := wsNormal;
или
Код:
  Form2.WindowState := wsNormal;
  Form2.Show;
Может не стоит выдирать код из контекста программы?
Особенно если это самопальная интерпретация кода некоей программы.

Последний раз редактировалось northener; 12.09.2014 в 02:29.
northener вне форума Ответить с цитированием
Старый 12.09.2014, 09:29   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

результатом работы каждой команды будет изменение внутреннего состояния формы (двух абсолютно независимых параметров) не имеющих прямого непосредственного эффекта в отображении и установка (требование) прорисовки (Invalidate) в одном или двух случаях. Прорисовка в любом случае будет выполнена в следующем цикле обработки сообщений, т.е. только после отработки обеих команд. Так что никакой разницы нет.(с точки зрения отображения самой формы).
С точки зрения отображения окружения (других форм самого приложения, других приложений и рабочего стола) интересен только случай "сворачивания" из wsMaximal (появление ранее занятой формой площади экрана).
Другие формы приложения также получат Invalidate, которое также будет обработано в следующем цикле.
Рабочий стол это тоже внешнее приложение.
Другие приложения тоже получат Invalidate, но когда?
А. при установке каждого свойства (есть шанс "двойного" рисования)
Б. при (после) выполнения прорисовки.
Точного знания у меня нет, но по логике склоняюсь к варианту Б.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 12.09.2014 в 09:46.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
userform.show roborrr Microsoft Office Excel 1 24.12.2013 17:48
Изменение BorderStyle и WindowState во время выполнения программы Arhanvel Общие вопросы Delphi 2 31.01.2012 22:59
Outlook 2003 и WindowState не работают Freerider1972 Microsoft Office Excel 1 15.06.2011 01:08
Проблема с WindowState = wsMaximized Claster Помощь студентам 0 30.05.2011 18:16
windowState в Delphi Claster Помощь студентам 0 22.04.2011 11:12