|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2011, 22:24 | #1 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Проблема отображения главной формы над другими
Может кто знает как обуздать следующую ситуацию (D 2009).
Главная форма обычная: FormStale = fsNormal. Из главной формы динамически создаются несколько других не модальных одного класса. FormStale = fsNormal, BorderStyle = bsSizeToolWin (впрочем, последнее не влияет на решение проблемы). После создания динамической формы она автоматом становится активной и частично перекрывает главную (динамически созданные формы могут иметь разные размеры и перекрывают главную по разному). Проблема. При активации главной формы (тыкаем мышкой в видимую ее часть) она становиться активной, но не вытаскивается поверх той, которая была ранее активной. Т.е. все равно главная перекрыта созданной формой. Хотелось чтобы главная при активации была как говорится "stay on top". Но FormStyle = fsStayOnTop, в принципе, проблему не решают. Попытка была такая: при активации главной формы (в OnActivate) присвоить FormStyle = fsStayOnTop, а при создании динамической формы возвращать значение в fsNormal. И на первый взгляд это даже работает, но только на первый взгляд. При создании динамических форм тыкание мышки в главную выносит ее поверх всех созданных, но только если не трогать те созданные. Стоит только ткнуть в любую созданную форму и на этом эффект перекрытия главной формы остается уже постоянно. fsStayOnTop главной при ее активации как бы не срабатывает и она все равно перекрыта другими. Еще неприятность: "stay on top" главной формы не требуется и только мешает, т.е. принципиально не хотелось бы применять; --- Обнаружил, что в D 7 такого эффекта не наблюдается. Главная форма при активации прилежно выползает поверх всех других. Последний раз редактировалось Прик; 22.01.2011 в 22:37. Причина: Уточнение |
23.01.2011, 12:21 | #2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Может попробывать
Код:
|
23.01.2011, 12:57 | #3 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
В первом посте не отметил, что и BringToFront тоже не помогает. Испытано. Да этот метод и действует только на компоненты формы, к форме не применим.
Для большего понимания проблемы картинка. На ней видно, что главная форма активна, а перед этим созданная - нет. Тем не менее главная форма перекрыта. |
23.01.2011, 13:03 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
покажите как создаете и показываете формы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
23.01.2011, 13:36 | #5 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Код:
Последний раз редактировалось Прик; 23.01.2011 в 13:50. |
23.01.2011, 14:47 | #6 | |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
Цитата:
|
|
23.01.2011, 16:42 | #7 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Пытал и Self, и nil. Результат один - все то же самое, главная форма перекрывается.
Хм, где же собака зарылась?.. |
23.01.2011, 23:30 | #8 |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
Ну не знаю...
Я сделал 3 формы, каждая создается и показывается из предыдущей. И все нормально, если у них у всех FormStyle=fsNormal, а не fsStayOnTop. Ни одна из них не торчит поверх главной... |
24.01.2011, 09:00 | #9 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Кто работает с D 2009 компильните приложенный примитивный проект, в котором проявляется проблемный эффект (во всяком случае, у меня).
Версии: Delphi® 2009 Version 12.0.3170.16989 Windows XP (Build 2600: Service Pack 3). Обновляемый через Windows Update. |
24.01.2011, 11:17 | #10 |
Подтвердите свой е-майл
Регистрация: 19.12.2010
Сообщений: 808
|
Компильнул в Д7 - все нормально, только в проекте закомментировал строку
Application.MainFormOnTaskbar := True; |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Неглавная форма всегда над главной. Как исправить? | TwiX | Общие вопросы Delphi | 19 | 03.11.2012 17:17 |
Преимуществах delphi над другими языками | nmtr | Софт | 19 | 16.08.2010 14:11 |
Как программно закрыть все открытые модальные формы перед сворачиванием главной формы в трей? | SkAndrew | Общие вопросы Delphi | 8 | 27.01.2010 22:44 |
Найти минимум из элементов над главной диагональю | Mashinegunner | Общие вопросы C/C++ | 1 | 27.11.2009 23:40 |
Обращение из формы в dll к элементу главной формы (delphi) | a_n_n_a | Помощь студентам | 3 | 10.05.2009 04:00 |