Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить видна ли форма 
:(
    Опции темы
Akella
Дата 2.11.2011, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Может глупость сейчас спрошу, но я немного в недоумении.
Self.Showing возвращает True, хотя форма на экране не видна!

Как однозначно определить, видна ли форма или нет?
PM MAIL   Вверх
bems
Дата 2.11.2011, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Visible это не то часом? smile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Akella
Дата 2.11.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



нет, тоже возвращает True, но форма не видна, а вообще, свойство visible предназначено ведь для управления видимостью
PM MAIL   Вверх
bems
Дата 3.11.2011, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



что значит не видна? закрыта другими окнами?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
CROTishka
Дата 3.11.2011, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 30.7.2009

Репутация: 1
Всего: 2



вам сюда:
http://msdn.microsoft.com/en-us/library/wi...85).aspx#zorder
http://msdn.microsoft.com/en-us/library/wi...7(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/wi...9(v=vs.85).aspx


только определить 100% видны ли ваша форма из-под других невозможно, т.к. они могут быть неправильной формой, и/или прозрачными.
ещё учтите, что мониторов несколько может быть  smile 
узнать разрешение:
http://msdn.microsoft.com/en-us/library/dd...7(v=vs.85).aspx

Это сообщение отредактировал(а) CROTishka - 3.11.2011, 09:15
PM MAIL   Вверх
Akella
Дата 3.11.2011, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(bems @ 3.11.2011,  01:11)
что значит не видна? закрыта другими окнами?

Не видна, значит нет её вообще на экране. Она создана, но ещё не успела отобразиться.

При создании формы некая компонента (от EhLib) восстанавливает настройки чекбоксов. На один из чекбоксов (TcxCheckEdit) повешен код на событие OnChange.
В коде выполняется открытие набора данных. Перед открытием я проверяю видимость формы, т.к. нет смысла открывать НД, у формы которая скрыта.
Короче это мелочи. Вопрос-то в другом smile

Добавлено через 10 минут и 53 секунды
Цитата(CROTishka @  3.11.2011,  09:09 Найти цитируемый пост)
только определить 100% видны ли ваша форма из-под других невозможно, 

А это и не нужно. Нужно знать, форма вообще есть на экране или нет? Пусть даже закрыта другим окном.
PM MAIL   Вверх
bems
Дата 3.11.2011, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(Akella @  3.11.2011,  11:12 Найти цитируемый пост)
Нужно знать, форма вообще есть на экране или нет?
это Visible. 
Выкладывай тестовый проект



--------------------
Обижено школьников: 8
PM MAIL   Вверх
v258
Дата 5.11.2011, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 19.7.2005
Где: Краснодарский кра й

Репутация: 2
Всего: 2



Цитата(Akella @  3.11.2011,  11:12 Найти цитируемый пост)
При создании формы некая компонента (от EhLib) восстанавливает настройки чекбоксов. На один из чекбоксов (TcxCheckEdit) повешен код на событие OnChange.В коде выполняется открытие набора данных. Перед открытием я проверяю видимость формы, т.к. нет смысла открывать НД, у формы которая скрыта.

А не проще задать Form.Visible=False перед восстановлением настроек чекбоксов, а после выставить Visible=True?
PM MAIL WWW   Вверх
Akella
Дата 6.11.2011, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(v258 @  5.11.2011,  20:15 Найти цитируемый пост)
А не проще задать Form.Visible=False перед восстановлением настроек чекбоксов, а после выставить Visible=True? 

Обрати внимание на то, какое значение Visible форма имеет в дизайне smile
PM MAIL   Вверх
Delvish
Дата 7.11.2011, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



Application.MainForm.Visible разве не дает нужный результат?

можно еще обойтись булевым флагом, установленным изначально в false, впоследствии переведенном в true при первом же изменении и проверять по нему делать открытие НД или нет

Это сообщение отредактировал(а) Delvish - 7.11.2011, 13:54
PM MAIL   Вверх
v258
Дата 7.11.2011, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 19.7.2005
Где: Краснодарский кра й

Репутация: 2
Всего: 2



Цитата(Akella @  6.11.2011,  01:01 Найти цитируемый пост)
Обрати внимание на то, какое значение Visible форма имеет в дизайне

Ну и что? Стоит задача не допустить запуска обработчика при создании формы? Вот и не допускай, не хочешь Visible формы использовать, задай свой флаг, как Delvish советует. Или восстанавливай настройки не в onCreate, а в onShow формы  smile  

Это сообщение отредактировал(а) v258 - 7.11.2011, 14:52
PM MAIL WWW   Вверх
Akella
Дата 7.11.2011, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(v258 @  7.11.2011,  14:51 Найти цитируемый пост)
Или восстанавливай настройки не в onCreate, а в onShow формы  

Нельзя, а вдруг получится так, что onShow сработает 2 раза.
PM MAIL   Вверх
Delvish
Дата 7.11.2011, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



а в onCreate форма еще не создалась (насколько я знаю, это событие как раз "за миг" до создания формы) и там проверять Visible-свойство и не требуется. я бы решил проблему через использование флага, который однозначно позволит (не)сработать событию только 1 раз (в зависимости от потребностей)
PM MAIL   Вверх
v258
Дата 7.11.2011, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 19.7.2005
Где: Краснодарский кра й

Репутация: 2
Всего: 2



Цитата(Akella @  7.11.2011,  15:06 Найти цитируемый пост)
а вдруг получится так, что onShow сработает 2 раза.

Ну тогда только флагами  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0954 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.