Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Сделать невидимой главную форму |
Автор: Нитонисе 15.2.2010, 04:03 |
Запускаю форму из главной (там главное меню - набор кнопок, открывающих те или иные формы) и хотелось бы чтобы главная форма при этом становилась невидимой. Однако написать команду FMain->Visible = false, билдер почему-то не разрешает (в обработчике нажатия на кнопку, запускающую другую форму). Как скрыть главную форму? |
Автор: Dem_max 15.2.2010, 05:43 | ||
Ну не знаю у меня все работает:
|
Автор: vikaz 15.2.2010, 06:24 | ||||
Скрыть:
Показать:
|
Автор: smoke_man 15.2.2010, 08:42 | ||
Можно еще так:
|
Автор: Нитонисе 15.2.2010, 16:34 | ||
Не понимаю в чем дело. Я разрабатывал форму FMain. Затем решил что она не будет главной в моем проекте, а будет запускать из другой. Добавил в проект форму FMenu и сделал ее главной в опциях проекта. Теперь у меня обе формы создаются при запуске приложения. FMenu - видима, FMain - нет. Далее я размещаю кнопку на FMenu. Вот обработчик ее нажатия.
А вот вставить перед этой командой команду FMenu->Visible = false - не удается. В билдере после ввода символа "->" выпадает список возможных свойств и методов, так вот Visible среди них нет. И Hide тоже нет. Команда Application->ShowMainForm = false; вводится, но не работает. Главная форма остается видимой. |
Автор: Нитонисе 15.2.2010, 19:36 | ||
Вот это сработало. Но теперь мне нужно при закрытии второстепенной формы снова отобразить главную. Привычные методы FMenu->Show() или FMenu->Visible=true - не работают. Компилятор вот такую выдает ошибку например на методе Show(). [C++ Error] UStat.cpp(1045): E2247 'TCustomForm::FMenu' is not accessible [C++ Error] UStat.cpp(1045): E2247 'TCustomForm::FMenu' is not accessible [C++ Error] UStat.cpp(1045): E2316 'Show' is not a member of 'TMainMenu' |
Автор: vikaz 16.2.2010, 07:29 |
Так нужно? |
Автор: Dem_max 16.2.2010, 08:06 |
Еще вот |
Автор: artsb 16.2.2010, 09:44 | ||||
FMenu - это точно указатель на форму? Вы его не удалили и не перепутали с чем-то другим?
Судя по всему, вы пытаетесь вызвать метод TMainMenu Show, которого просто нет. Опять прочитайте мой вопрос выше. |
Автор: Нитонисе 16.2.2010, 21:05 | ||
Это точно указатель на форму. Я такое имя дал главной форме. Вот что интересно, создаю новое приложение - там все работает. Форма и скрывается и появляется. Все методы работают. А в моем приложении - не работает. Тут вот такая предыстория была. Я начал проектировать программу и главной формой была та, котороую потом я решил сделать второстепенной. То есть я добавил в проект новую форму и именно ее сделал главной. Так вот может в модулях бывшей главной формы осталась какая-то информация, которую надо было поправить? Я ж ее ко всему прочему переименовал. Была FMain, стала FStat. А главной форме дал имя FMenu. Все функции дочерней и главной форм работают, а вот отобразить из дочерней главную - не могу. |
Автор: artsb 16.2.2010, 22:21 |
ИМХО вы что-то с указателями напутали. Делаю такой вывод хотя бы потому, что FMenu->Visible = false не работает, а this->Visible = false работает. Значит, либо указатель ссылается не на форму (это проверяется просто - если после ввода "->" отображаются какие-либо методы - указатель валидный, но ссылается не на форму), либо он битый. |
Автор: Нитонисе 16.2.2010, 23:55 |
Вот ведь странно - поменял имя формы с FMenu на FMain - все стало работать! Такое ощущение что имя FMenu конфликтует с чем-то. |
Автор: artsb 17.2.2010, 00:01 |
Я это и пытался до тебя донести ![]() |
Автор: Нитонисе 17.2.2010, 00:58 |
Интересно с чем ![]() |
Автор: Noubpoeno 10.12.2022, 03:40 |
Модератор: Сообщение скрыто. |