|
|
|
Отображение формы(или фрейма) в компании с другой модальной формой.04.01.2012, 00:04. Показов 6450. Ответов 16
Метки нет (Все метки)
Всем привет
![]() Такое затруднение приключилось: есть форма условно основная, по событию над ней отображается вторая форма методом ShowModal(), так вот, как можно вместе со второй, модальной формой одновременно отображать и использовать третью форму, ну, или фрейм - что угодно. При этом основная форма пользователю доступна быть не должна, хотя и должна быть видна на заднем плане, а вторая, модальная, и третья формы пользователю должны быть доступны обе одновременно. Еще, если это имеет значение в рамках данной задачки, все формы отображаются в стиле fsStayOnTop. Так и сяк пробовал - из-за ShowModal(), блин, ничего не выходит...
0
|
|
| 04.01.2012, 00:04 | |
|
Ответы с готовыми решениями:
16
Проблемы с модальной формой Вызов модальной формы из модальной, нужно:закрытие последней и не закрытие первой. Как общаться с модальной формой Excel? |
|
|
|
| 04.01.2012, 00:13 | |
|
на то форма и модальная, чтобы ей ничто не мешало, имхо, да и все три формы в стиле fsStayOnTop - тоже круто.
0
|
|
|
|
|||
| 04.01.2012, 03:34 | |||
|
зависит - какая задача - я когда-то делал так: одна форма при открытии сворачивается в трей (или на панель задач) без отображения, две другие - полностью независимые формы, для отображения одновременно двух этих форм достаточно указать им соотвествующие параметры и координаты при открытии, работать можно с двумя формами одновременно, переключаясь между ними как и между другими окнами.
Добавлено через 1 час 44 минуты
2
|
|||
|
|
||
| 04.01.2012, 12:33 [ТС] | ||
Хотя, стоит сперва погонять этот трюк с переключением Enabled вызывающей формы, посмотреть, как он на модальных работает.
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 04.01.2012, 13:26 | ||
|
Или ShowModal все потоки останавливает??? А если так, то кто мешает создать новый процесс?
0
|
||
|
|
||
| 04.01.2012, 16:34 [ТС] | ||
|
Щас поиграюсь с потоками и переключением Enabled, там видно будет...
0
|
||
|
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
|
||||||||||||
| 04.01.2012, 19:12 | ||||||||||||
|
Создаем три формы, прописываем все что нужно, чтобы их вызывать друг из друга. Затем размещаем на первой форме кнопку и назначаем на событие OnClick этой кнопки такой вот код:
2
|
||||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 04.01.2012, 19:30 | |
|
- а к третьей будет, если вторая "модально"?
0
|
|
|
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
|
|
| 04.01.2012, 19:39 | |
|
nick42, будет. Она же вызывается после второй.
0
|
|
|
|
|||||||||||||||||||||
| 09.01.2012, 21:32 [ТС] | |||||||||||||||||||||
|
Погонял все вышеупомянутые способы и вот что получилось в итоге.
Способы, подсказанные LK и NiTan, по сути своей, скорее всего, одинаковы, поскольку внешне они работают совершенно одинаково. Принцип будет выглядеть как-то так:
C использованием нового потока можно написать, к примеру, так:
Получается, что и с использованием потока третья форма будет доступна только в том случае, если будет вызвана по времени после выполнения функции second->ShowModal(), то есть вся эта ерунда с созданием потока и формы в потоке, выделением под них памяти только оттягивает время, за которое ShowModal() и успевает отработать, не затрагивая создающуюся в это время третью форму. Отсюда вопрос, можно ли заставить форму вообще жить в параллельном потоке, независимо от основного, или, как я где-то читал, классы VCL под это не заточены?
1
|
|||||||||||||||||||||
|
|
|
| 09.01.2012, 21:37 | |
|
1. говорят, потоки вобче не для визуальных компонентов.
2. если вам форма нужна не постоянно, не каждый день, а время от времени, суньте ее в ДЛЛ, но это уже будет совсем другая форма и совсем другая история .
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 09.01.2012, 21:49 | ||
|
Есть там такая концепция "главной формы". И простыми телодвижениями из нее не выплыть. Хотя Qt, кажется (крещусь!) от этой штуки ушел. Но тут я ничего конкретного сказать не могу, мое знакомство с Кутей на уровне "Hellow". Так, лапкой трогаю его...
1
|
||
|
|
|
| 09.01.2012, 21:51 | |
|
это будет просто себе отдельная форма
возвращаясь к истокам: я что-то не пойму, если вам одновременно нужны форма №2 и форма №3, для чего форму №2 отображать модально - да хоть модально - выводите сколько хотите форм, задаете им стиль WS_EX_APPWINDOW , получаете совершенно свободное окно со своей кнопкой на TaskBar'е - и - вперед, и с песней.
2
|
|
|
|
||||||||
| 10.01.2012, 06:12 [ТС] | ||||||||
Да просто исследую разные возможности. Ведь функция ShowModal() предоставляет весьма полезную и удобную возможность - приостановить исполнение кода в точке своего вызова.А вот за WS_EX_APPWINDOW спасибо, попробуем... Добавлено через 8 часов 6 минут Насколько я понимаю, метод ShowModal() либо отнимает у Application цикл принятия сообщений от Windows, либо вносит в него такие изменения, чтоб все сообщения, не касающиеся модальной формы, просто не обрабатывались. Или применяет ко всем активным формам программы какой-нить метод навроде EnableWindow(form_handle, false), только брутальнее. Вообще, любопытно, чего конкретно делается... Короче, делаю так - результат нулевой:
1
|
||||||||
|
|
||||||
| 26.01.2012, 20:09 [ТС] | ||||||
|
Изначально возможность независимости от модальных форм требовалась для создания пультика ДУ для отладки программы. На форме располагается управление некоторыми вещами, так что можно в любой момент что-то сделать в обход всех и всяческих правил и посмотреть результат.
Может, пригодится кому - разрешилось все так:
1
|
||||||
| 26.01.2012, 20:09 | |
|
Помогаю со студенческими работами здесь
17
Управление формой из другой формы Как передать данные с одной формы на страницу с другой формой?
Как из одного фрейма обратиться к содержимому формы другого фрейма? Вывод модальной формы после отправки формы AJAX Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|