Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/35: Рейтинг темы: голосов - 35, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
1

Перезапуск формы

21.02.2012, 21:20. Показов 6722. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как можно при нажатии кнопки закрыть формы и открыть опять эту же форму?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2012, 21:20
Ответы с готовыми решениями:

Перезапуск в приложении
Проблема в следующем: Есть пара эдитов, ввожу туда числа , затем нажимаю кнопку (у неё...

Перезапуск программы
Добрый день всем) Такой вопрос , в программе есть кнопка - сброс настроек, но что бы настройки...

перезапуск проги XD
опять глупый студент. Есть какое-то условие, при выполнении его надо, что бы прога прекратило своё...

Перезапуск программы
Скажите, пожалуйста, можно ли как-нибудь сделать перезапуск своей программы из нее же самой? Или...

19
LK
Заблокирован
22.02.2012, 00:54 2
C++
1
2
3
4
5
6
if (Form->Visible==true) {
  Form->Hide();
}
else if (Form->Visible==false) {
  Form->Show();
}
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
22.02.2012, 12:11 3
А так не пойдет?
C++
1
 Form->Visible = !Form->Visible;
1
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
26.02.2012, 00:20  [ТС] 4
Цитата Сообщение от LK Посмотреть сообщение
C++
1
2
3
4
5
6
if (Form->Visible==true) {
  Form->Hide();
}
else if (Form->Visible==false) {
  Form->Show();
}
оба предложения не работают, форма закрывается но не открывается.
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
26.02.2012, 00:37 5
C++
1
2
3
Form->Visible=false;
Sleep(500);
Form->Visible=true;
только зачем?
0
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
26.02.2012, 10:07  [ТС] 6
Цитата Сообщение от vxg Посмотреть сообщение
C++
1
2
3
Form->Visible=false;
Sleep(500);
Form->Visible=true;
только зачем?
Мне нужен именно перезапуск а не сделать её не видимой, а потом видимой.
0
117 / 74 / 6
Регистрация: 23.01.2012
Сообщений: 186
26.02.2012, 10:24 7
Вот Вам пример.
Написан на Builder Xe
Вложения
Тип файла: zip 2.ZIP (90.2 Кб, 33 просмотров)
0
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
26.02.2012, 10:36  [ТС] 8
Цитата Сообщение от _engineer_ Посмотреть сообщение
Вот Вам пример.
Написан на Builder Xe
я что то я не понял твой пример, он не работает(не запускается).
0
117 / 74 / 6
Регистрация: 23.01.2012
Сообщений: 186
26.02.2012, 10:49 9
Какой Вы используете Builder?
Какие ошибки?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.02.2012, 11:48 10
Цитата Сообщение от mazahaka2401 Посмотреть сообщение
Мне нужен именно перезапуск а не сделать её не видимой, а потом видимой
Что имеется ввиду под перезапуском?
Форму нельзя на сколько мне известно "перезапустить".
Можно сделать невидимой, загрузить ее с файла...
0
117 / 74 / 6
Регистрация: 23.01.2012
Сообщений: 186
26.02.2012, 12:00 11
Цитата Сообщение от Avazart
Что имеется ввиду под перезапуском?
Присоединюсь к вопросу
Цитата Сообщение от Avazart
Форму нельзя на сколько мне известно "перезапустить".
Можно сделать невидимой, загрузить ее с файла...
Можно если она дочерняя(см. мой пример)
Если же главная, то без бубна не как.
Бубен:
По нажатию кнопки запускаем бат файл с таймером и запуском нашей программы, закрываем программу.
1
1 / 1 / 1
Регистрация: 20.10.2011
Сообщений: 5
26.02.2012, 12:52 12
Судя по всему TC хочет перезапустить приложение, как это обычно происходит после обновления большинства программ..

Можно так:
1) При запуске программы ставим мьютекс
2) Если программа уже запущена - убивать ее (подскажу как, если я вообще по теме пишу)
Вот и все, запуская это приложение из самого себя, таким образом оно будет перезапускаться
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
26.02.2012, 14:04 13
осознал вопрос. главную форму - никак. придется сделать главной формой какую-нибудь служебную ничего не содержащую и никогда не показывающуюся. а для той формы которая будет перед пользователем - создавать через new, для перезапуска - delete и повторный new
0
117 / 74 / 6
Регистрация: 23.01.2012
Сообщений: 186
26.02.2012, 14:07 14
Цитата Сообщение от vxg Посмотреть сообщение
придется сделать главной формой какую-нибудь служебную ничего не содержащую и никогда не показывающуюся.
А для закрытие приложения еще один Бубен?
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
26.02.2012, 14:18 15
почему? при закрытии видимой формы закрывать главную
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.02.2012, 14:48 16
Цитата Сообщение от vxg Посмотреть сообщение
создавать через new, для перезапуска - delete и повторный new
Ну разве что так, но вот смысл таких действий?
0
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
26.02.2012, 15:03 17
Цитата Сообщение от Avazart Посмотреть сообщение
Ну разве что так, но вот смысл таких действий?
ну я так понял что бы не парится с повторной инициализацией. а в реале - хз
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.02.2012, 16:03 18
Отож, не легче повторно вызвать FormCreate или другую ф-цию-инициализатор?
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
28.02.2012, 16:57 19
А нафиг ее вообще пересоздавать, форму-то? Не лучше ли просто проинициализировать по новой все содержимое класса формы, таким же макаром, как вы в конструкторе или обработчике OnCreate делаете, да ручками подчистить, если еще чего осталось?
0
Эксперт С++
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
28.02.2012, 18:55 20
Цитата Сообщение от mazahaka2401 Посмотреть сообщение
Как можно при нажатии кнопки закрыть формы и открыть опять эту же форму?
Да очень просто:
C++
1
2
Application->MainForm->Close();
ShellExecute(Handle,L"open",Application->ExeName.w_str(),L"",L"",SW_SHOWNORMAL);
Если вы работаете с однобайтовыми типами данных - то же самое, только уберите макрос "L" и замените "w_str()" на соответствующий.
0
28.02.2012, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2012, 18:55
Помогаю со студенческими работами здесь

Зависшая программа. Перезапуск
Добрый день! Задумался. Есть программа написанная на Embarcadero XE8. Гипотетически, она может...

Программный перезапуск службы-виндовс
Всем доброго времени суток. Как перезапустить службу виндовс? И возможно ли, что бы служба...

Перезапуск процесса с правами администратора (UAC)
Доброго времени суток. Столкнулся с проблемой при решении задачи. Мне необходимо создать файл в...

Запрет запуска второй копии и перезапуск
Всем привет! Пытаюсь реализовать запрет на запуск второй копии приложения. Вот мой код: int WINAPI...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru