Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58

Отображение нескольких форм

24.08.2012, 16:00. Показов 3124. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Имеется 2 формы, при этом у главной свойство FormStyle = fsmdiForm, у второстепенной - fsNormal. При создании второстепенной формы она отображается поверх главной, то есть перекрываает ее, что нормально. Но при щелчке мышкой на главной форме она выделяется, но второстпенноая форма так и остается торчать, закрывая большую ее часть. Не подскажите как сделать так, чтобы главная форма вышла на первый план?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2012, 16:00
Ответы с готовыми решениями:

Cчитывание, сравнивание, поиск из нескольких форм
Здравствуйте у меня проблема целую ночь думаю не могу придумать ничего ((( У меня на первой форме водица в Editы какая-то инфа и...

Общее меню для нескольких форм C++ Builder
Хочу получить одно меню компонента MainMenu на 8 формах. Явно, что копировать обработчики и делать чтобы каждая форма видела друг друга...

Вывод случайно выбранной из нескольких созданных форм
Доброе утро\день\вечер! Как можно реализовать вывод рандомной формы. То есть есть кнопка на главной форме, при нажатии на эту кнопку...

15
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
27.08.2012, 00:45
В этом весь смысл интерфейса mdi. Если он не требуется, лучше, наверно, создавать sdi-приложение?
0
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58
27.08.2012, 08:10  [ТС]
Мне просто потом понадобятся еще и дочернии формы, внутри главного окна, для этого и выбрал mdi.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
27.08.2012, 08:29
Цитата Сообщение от Philippov Посмотреть сообщение
Мне просто потом понадобятся еще и дочернии формы, внутри главного окна, для этого и выбрал mdi.
Тогда должно быть у главной свойство FormStyle = fsmdiForm, у второстепенной - fsMDIChild
0
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58
27.08.2012, 09:32  [ТС]
Не совсем так. Приведу пример: Есть главная форма MainForm(FormStyle=fsMdiForm),формы Form2, Form3, Form4 - ее дочернии(отображаются внутри главной), для них FormStyle = fsMdiChild, но есть еще и дополнительная форма Form1, которая должна отоброжаться в отдельном окне у нее FormStyle=fsNormal. И вот проблема в том, что эта форма даже при попадании фокуса на главную, загораживает ее.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
27.08.2012, 09:49
Philippov, А вы форму отоброжаете функцией Show() или ShowModal() ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
27.08.2012, 10:03
Philippov, форму с FormStyle=fsNormal убираешь из списка автосоздаваемых, и создаешь при создании главной формы руками:
C++
1
    Form2 = new TForm2(Application);
, тогда она не будет перекрывать главную при потере фокуса.
0
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58
27.08.2012, 10:12  [ТС]
Цитата Сообщение от ivan.-94 Посмотреть сообщение
Philippov, А вы форму отоброжаете функцией Show() или ShowModal() ?
функцией Show(); Главная форма у меня выделяется, то есть становится активной, Tab-ом могу пробежаться по кнопкам, просто такое ощущение, что она убрана на задний фон, а второстепенная выдвинута на передний.
P.S. функция BringToFront(); - не помогла)

Добавлено через 1 минуту
Цитата Сообщение от UI Посмотреть сообщение
Philippov, форму с FormStyle=fsNormal убираешь из списка автосоздаваемых, и создаешь при создании главной формы руками:
C++
1
    Form2 = new TForm2(Application);
, тогда она не будет перекрывать главную при потере фокуса.
Именно так я и делаю. Все равно перекрывает(
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
27.08.2012, 10:21
Цитата Сообщение от Philippov Посмотреть сообщение
Все равно перекрывает(
Простейший тестовый проект (с двумя формами), иллюстрирующий проблему - в студию. Потому что я, прежде чем предложить, сделал себе проект. И ничего не перекрывает (при ручном создании второй формы).
0
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58
27.08.2012, 10:40  [ТС]
Вот проект и скриншот.
Миниатюры
Отображение нескольких форм  
Вложения
Тип файла: zip Forum.zip (81.6 Кб, 12 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
27.08.2012, 10:56
На всякий случай - вот мой проект (вместе с EXE) и скриншот:
Миниатюры
Отображение нескольких форм  
Вложения
Тип файла: zip simple.zip (259.0 Кб, 12 просмотров)
1
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58
27.08.2012, 11:09  [ТС]
Спасибо. Буду искать различия)

Добавлено через 5 минут
При построении не может найти библиотеку acnt2009_R.lib Не подскажете где мне ее взять? Собираю в С++ Builder XE2
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
27.08.2012, 11:12
А, выбрось ее, это у меня AlphaControls установлен, он не используется в проекте.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
27.08.2012, 11:22
Цитата Сообщение от UI Посмотреть сообщение
C++
1
Form2 = new TForm2(Application);
Или так
C++
1
Application->CreateForm(__classid(TForm2), &Form2);
0
3 / 3 / 0
Регистрация: 24.08.2012
Сообщений: 58
28.08.2012, 08:20  [ТС]
Выяснил из-за чего это! Если строчку
C++
1
Form2 = new TForm2(Application);
написать в обработчик нажатия пункта меню, то получается проблема как у меня. А я хотел именно создавать форму, только лишь по нажатию на кнопку, она будет вызываться крайне редко и не хочется, чтобы всегда висела в памяти.

Добавлено через 20 часов 42 минуты
UI, Не попробовал мой проект? Просто уже и незнаю что делать с этой формой...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
28.08.2012, 08:46
Philippov, попробуй методы, что использовались для борьбы с модальностью, суть, как мне кажется, одна.
Отображение формы(или фрейма) в компании с другой модальной формой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2012, 08:46
Помогаю со студенческими работами здесь

Как объявить структуру и её экземпляры общие для нескольких форм?
Всем здравствуйте. В проект включён файл PublicDecl.cpp в нём описана общая для нескольких форм переменная: #include...

Правильное отображение нескольких форм (а именно гридов) в приватной сессии
Привет. Помогите ради бога! Есть 2 формы, которые не имеют ничего общего и запускаются в разных местах и при разных условиях. Работа с ними...

Отображение нескольких таблиц в нескольких dataGridView
Доброго всем времени суток, пишу программу на C# которая работает с БД access 2007. БД состоит из нескольких таблиц. Подскажите...

Отображение форм.
Здравствуйте.Нужна помощь. Вызываю форму из другой формы.Все хорошо, только нужно чтобы первая форма пропадала. main.cpp ...

Отображение форм
На загрузке главной формы прописано If MsgBox("Замена статусов", vbQuestion + vbYesNo) = vbYes Then ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru