![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Может глупость сейчас спрошу, но я немного в недоумении.
Self.Showing возвращает True, хотя форма на экране не видна! Как однозначно определить, видна ли форма или нет? |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Visible это не то часом?
![]() -------------------- Обижено школьников: 8 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
нет, тоже возвращает True, но форма не видна, а вообще, свойство visible предназначено ведь для управления видимостью
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
что значит не видна? закрыта другими окнами?
-------------------- Обижено школьников: 8 |
|||
|
||||
CROTishka |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 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% видны ли ваша форма из-под других невозможно, т.к. они могут быть неправильной формой, и/или прозрачными. ещё учтите, что мониторов несколько может быть ![]() узнать разрешение: http://msdn.microsoft.com/en-us/library/dd...7(v=vs.85).aspx Это сообщение отредактировал(а) CROTishka - 3.11.2011, 09:15 |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Не видна, значит нет её вообще на экране. Она создана, но ещё не успела отобразиться. При создании формы некая компонента (от EhLib) восстанавливает настройки чекбоксов. На один из чекбоксов (TcxCheckEdit) повешен код на событие OnChange. В коде выполняется открытие набора данных. Перед открытием я проверяю видимость формы, т.к. нет смысла открывать НД, у формы которая скрыта. Короче это мелочи. Вопрос-то в другом ![]() Добавлено через 10 минут и 53 секунды
А это и не нужно. Нужно знать, форма вообще есть на экране или нет? Пусть даже закрыта другим окном. |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
это Visible.
Выкладывай тестовый проект -------------------- Обижено школьников: 8 |
|||
|
||||
v258 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
А не проще задать Form.Visible=False перед восстановлением настроек чекбоксов, а после выставить Visible=True? |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Delvish |
|
|||
![]() oO ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 13.12.2006 Репутация: 1 Всего: 4 |
Application.MainForm.Visible разве не дает нужный результат?
можно еще обойтись булевым флагом, установленным изначально в false, впоследствии переведенном в true при первом же изменении и проверять по нему делать открытие НД или нет Это сообщение отредактировал(а) Delvish - 7.11.2011, 13:54 |
|||
|
||||
v258 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
Ну и что? Стоит задача не допустить запуска обработчика при создании формы? Вот и не допускай, не хочешь Visible формы использовать, задай свой флаг, как Delvish советует. Или восстанавливай настройки не в onCreate, а в onShow формы ![]() Это сообщение отредактировал(а) v258 - 7.11.2011, 14:52 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Delvish |
|
|||
![]() oO ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 13.12.2006 Репутация: 1 Всего: 4 |
а в onCreate форма еще не создалась (насколько я знаю, это событие как раз "за миг" до создания формы) и там проверять Visible-свойство и не требуется. я бы решил проблему через использование флага, который однозначно позволит (не)сработать событию только 1 раз (в зависимости от потребностей)
|
|||
|
||||
v258 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |