![]() |
|
|
![]()
|
|
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Программа имеет несколько окон. Есть главное окно из которого можно показать любое второстепенное окно. При этом второстепенные окна перекрывают главное, хотя у них StayOnTop = false. Как убрать этот эффект? Я хочу чтобы при выборе главного окна - производные прятались за ним.
|
|||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
Как вы это делаете, если фокус ввода на второстепенной форме? |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Так я активирую главную форму, кликом по ней. При этом та ее часть, которая была под второстепенной формой, там же и осталась. То есть главное окно не перекрыло второстепенное. Такое поведение было бы понятным, если бы у второстепенной формы было StayOnTop = true, но там установлено false. |
|||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
При получении главной формой фокуса ввода делать Close второстепенной форме.
|
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Ну так конечно можно делать, но не хотелось бы. Я хочу чтобы при активации любого окна программы оно перекрывало все остальные. Тут вот еще какая странность. Я ставлю StayOnTop главной формы true, но оно все равно всегда находится под остальными второстепенными. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Все формы у меня автоматически создаются вместе с главной. Только у главной Visible = true, а увсех остальных - false. Показываю окна командой Form1->Show(). Это сообщение отредактировал(а) Нитонисе - 16.11.2011, 16:04 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Они очень объемные, врядли там можно разобраться. Вот главный файл:
Все формы запускаются одной и той же командой Show() из главной формы. У меня тут еще одна неприятная проблема, может косвенно с этой связана. Одна из форм (fSheme) не отображается в редакторе. То есть я не могу ее отредактировать. Файлы *.cpp и *.h открываются, но по отдельности. Во время выполнения форма открывается как надо. Чтобы внести изменения в эту форму, я удаляю ее из проекта, создаю новую, копирую туда все компоненты с удаленной формы, заменяю файлы *.cpp и *.h, назначаю обработчики событий. Теперь можно редактировать форму в редакторе. Но стоит закрыть программу (RAD Studio XE) и открыть ее снова - с формой fSheme та же беда - она не открывается в редакторе. |
|||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
Свойство StayOnTop определяет взаимодействие формы с другими прложениями. Т.е. внутри приложения не важно, какая форма самая топовая, важно, что если у главной формы приложения выставлено StayOnTop, то она будет всегда поверх других запущенных приложений. А уже внутри приложения вам нужно "рулить" формами самому, а не полагаться на StayOnTop.
|
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
Я другого метода не знаю. А чем плохо-то? На формах (второстепенных) ничего не меняется и не сбрасывается, просто они "убираются" с экрана. Точно так же их потом вызовите методом Show и всё. |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Должна быть необходимость иметь на экране одновременно две формы - главную и второстепенную например размещенные рядом. В вашем же случае при активации главной - второстепенная скроется. |
|||
|
||||
| sawfish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 30.7.2008 Где: Новосибирск Репутация: 8 Всего: 8 |
Раньше шла речь о перекрытии:
А если нужно две рядом, тогда и размещайте рядом. Что мешает задать форме другие координаты, нужно будет пользователю - он подвинет/перетащит, как ему нужно. Например, переключились на главную, а второстепенную перемещаете под/над/слева/справа от параметров, которые более детально задаются/отображаются во второстепенной. ИМХО |
|||
|
||||
| Нитонисе |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Это неудобно. Мне нужно чтобы активная форма всегда перекрывала все остальные, но при этом не надо чтобы все остальные закрывались. Например я открыл главную форму. Запустил второстепенную. Активировал главную и оттащил в угол. Подвинул второстепенную, чтобы не мешали друг другу. Затем развернул главную на весь экран - при этом второстепенныя скрылась под ней.
То есть обычное поведение окон. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |