Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сделать невидимой главную форму 
V
    Опции темы
Нитонисе
Дата 15.2.2010, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Запускаю форму из главной (там главное меню - набор кнопок, открывающих те или иные формы) и хотелось бы чтобы главная форма при этом становилась невидимой. Однако написать команду FMain->Visible = false, билдер почему-то не разрешает (в обработчике нажатия на кнопку, запускающую другую форму).
Как скрыть главную форму?
PM MAIL   Вверх
Dem_max
Дата 15.2.2010, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Ну не знаю у меня все работает:

Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Form1->Visible = false;
   Form2 = new TForm2(this);
   Form2->ShowModal();
   delete Form2;
   Form1->Visible = true;
}
//---------------------------------------------------------------------------




--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
vikaz
Дата 15.2.2010, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Скрыть:
Код

Form1->Hide();

Показать:
Код

Form1->Show();


Это сообщение отредактировал(а) vikaz - 15.2.2010, 06:27


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
smoke_man
Дата 15.2.2010, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: 9
Всего: 17



Можно еще так:
Код

Application->ShowMainForm = false;
Form1->Visible = false;



--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
Нитонисе
Дата 15.2.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Не понимаю в чем дело.
Я разрабатывал форму FMain. Затем решил что она не будет главной в моем проекте, а будет запускать из другой. Добавил в проект форму FMenu и сделал ее главной в опциях проекта. Теперь у меня обе формы создаются при запуске приложения. FMenu - видима, FMain  - нет.
Далее я размещаю кнопку на FMenu. Вот обработчик ее нажатия.
Код

void __fastcall TFMenu::Button1Click(TObject *Sender)
{
FMain->ShowModal();
}

А вот вставить перед этой командой команду FMenu->Visible = false - не удается. В билдере после ввода символа "->" выпадает список возможных свойств и методов, так вот Visible среди них нет. И Hide тоже нет.
Команда Application->ShowMainForm = false; вводится, но не работает. Главная форма остается видимой.

Это сообщение отредактировал(а) Нитонисе - 15.2.2010, 16:34
PM MAIL   Вверх
artsb
Дата 15.2.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Нитонисе @  15.2.2010,  16:34 Найти цитируемый пост)
так вот Visible среди них нет. И Hide тоже нет.

Ну и что? smile Пиши и всё.

Цитата(Нитонисе @  15.2.2010,  16:34 Найти цитируемый пост)
Команда Application->ShowMainForm = false; 

Это тебе точно не нужно  smile

Добавлено через 4 минуты и 12 секунд
Цитата(Нитонисе @  15.2.2010,  16:34 Найти цитируемый пост)
А вот вставить перед этой командой команду FMenu->Visible = false - не удается.

А если просто :
Код

Visible = false;

или
Код

this->Visible = false;

?
Указатель FMenu вы не удаляли?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Нитонисе
Дата 15.2.2010, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Код

this->Visible = false;

Вот это сработало.

Но теперь мне нужно при закрытии второстепенной формы снова отобразить главную. Привычные методы 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'
PM MAIL   Вверх
vikaz
Дата 16.2.2010, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: 10
Всего: 12



Так нужно?

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  123.rar 19,20 Kb


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
Dem_max
Дата 16.2.2010, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Еще вот 

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  Form.zip 13,74 Kb


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
artsb
Дата 16.2.2010, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Нитонисе @  15.2.2010,  19:36 Найти цитируемый пост)
[C++ Error] UStat.cpp(1045): E2247 'TCustomForm::FMenu' is not accessible
[C++ Error] UStat.cpp(1045): E2247 'TCustomForm::FMenu' is not accessible

FMenu - это точно указатель на форму? Вы его не удалили и не перепутали с чем-то другим?

Цитата(Нитонисе @  15.2.2010,  19:36 Найти цитируемый пост)
[C++ Error] UStat.cpp(1045): E2316 'Show' is not a member of 'TMainMenu' 

Судя по всему, вы пытаетесь вызвать метод TMainMenu Show, которого просто нет. Опять прочитайте мой вопрос выше.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Нитонисе
Дата 16.2.2010, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Цитата(artsb @  16.2.2010,  09:44 Найти цитируемый пост)
FMenu - это точно указатель на форму? Вы его не удалили и не перепутали с чем-то другим?

Это точно указатель на форму. Я такое имя дал главной форме.

Вот что интересно, создаю новое приложение - там все работает. Форма и скрывается и появляется. Все методы работают. А в моем приложении - не работает. Тут вот такая предыстория была. Я начал проектировать программу и главной формой была та, котороую потом я решил сделать второстепенной. То есть я добавил в проект новую форму и именно ее сделал главной. Так вот может в модулях бывшей главной формы осталась какая-то информация, которую надо было поправить? Я ж ее ко всему прочему переименовал. Была FMain, стала FStat. А главной форме дал имя FMenu. Все функции дочерней и главной форм работают, а вот отобразить из дочерней главную - не могу.
PM MAIL   Вверх
artsb
Дата 16.2.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Нитонисе @  16.2.2010,  21:05 Найти цитируемый пост)
Вот что интересно, создаю новое приложение - там все работает.

ИМХО вы что-то с указателями напутали. Делаю такой вывод хотя бы потому, что FMenu->Visible = false не работает, а this->Visible = false работает. Значит, либо указатель ссылается не на форму (это проверяется просто - если после ввода "->" отображаются какие-либо методы - указатель валидный, но ссылается не на форму), либо он битый.



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Нитонисе
Дата 16.2.2010, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Вот ведь странно - поменял имя формы с FMenu на FMain - все стало работать!
Такое ощущение что имя FMenu конфликтует с чем-то.
PM MAIL   Вверх
artsb
Дата 17.2.2010, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Нитонисе @  16.2.2010,  23:55 Найти цитируемый пост)
Такое ощущение что имя FMenu конфликтует с чем-то. 

Я это и пытался до тебя донести  smile 


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Нитонисе
Дата 17.2.2010, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Цитата(artsb @  17.2.2010,  00:01 Найти цитируемый пост)
Я это и пытался до тебя донести

Интересно с чем  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1713 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.