Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как запустить программу заново?


Автор: Mpak 7.1.2007, 19:50
У меня в конце программы есть 
Код

MessageBox (0,"","",MB_RETRYCANCEL)


И если IDRETRY, то программа должна запуститься заново...

Автор: BreakPointMAN 7.1.2007, 19:57
В конце программы - это где?

Автор: mr.Anderson 7.1.2007, 20:42
Действительно. Если это уже в событии OnClose(), то можно сделать так:
Код

if( MessageBox( NULL, "", "", MBRETRYCANCEL ) != IDRETRY )
 Close();

Тогда незачем запускать программу повторно - она просто не закроется

Автор: Mpak 7.1.2007, 22:28
mr.Anderson, в том то и дела мне ее нужно еще раз запустить!

Добавлено @ 22:29 
BreakPointMAN, конечное условие.....если оно выполняется, то выскакивает MessageBox

Автор: mr.Anderson 7.1.2007, 23:41
Mpak, что значит конечное условие? В каком событии расположено это условие?

Автор: dumb 8.1.2007, 05:46
Mpak,
в случае retry создай батник, запускающий прогу, запусти его и выйди из программы.

Автор: Mpak 8.1.2007, 15:55
mr.Anderson, Да же не знаю как объяснить....
Ну по пробую...

Допустим есть какая-нибудь ОЧЕНЬ простенькая игра....
Например, "Угадай число"....пользователь угадывает число и в конце программа спрашивает, не хочет ли Пользователь сыграть еще раз....

Надеюсь понятный пример привел smile


dumb, я батами не умею работать smile
Тем более запускать, что либо Си smile
Только с текстовыми файлами работать (считывать) smile

Автор: AntonChik 8.1.2007, 16:05
ну если все так запущено, то можно попробовать начать с того, что обнулить глобальные переменные, удалить формы и тут же создать их заново smile

Автор: codelord 8.1.2007, 16:25
Код

ShellExecute(Handle,NULL,Application->ExeName.c_str(),NULL,NULL,SW_RESTORE); 

Автор: Mpak 8.1.2007, 16:31
AntonChik, и сколько раз?  smile

Добавлено @ 16:32 
codelord, это запускает программу заново?

Автор: Mpak 8.1.2007, 16:48
Всем спасибо, все работает!smile
Особенное, codelord, за код, который как раз и был нужен....

codelord, Впринципе разобрался (не без помощи хелпы smile раньше просто не знал, что искать) handle, какие может принимать значения?

Автор: codelord 8.1.2007, 16:56
Цитата(Mpak @  8.1.2007,  12:48 Найти цитируемый пост)
handle, какие может принимать значения?

Какие угодно smile. Это говорит win от кого посылается сообщение.

Добавлено @ 16:58 
это тебе подходит? я имею ввиду вариант с ShellExecute

Автор: Mpak 8.1.2007, 17:03
codelord, если я пишу
Цитата(codelord @  8.1.2007,  19:25 Найти цитируемый пост)
Код

ShellExecute(Handle,NULL,Application->ExeName.c_str(),NULL,NULL,SW_RESTORE);
 

то Си ругается, говорит не известный символ Handle.
А если пишу
Код

ShellExecute(0,NULL,Application->ExeName.c_str(),NULL,NULL,SW_RESTORE);

То все нормально....

Автор: codelord 8.1.2007, 17:10
Цитата(Mpak @  8.1.2007,  13:03 Найти цитируемый пост)
то Си ругается, говорит не известный символ Handle.

ну можно и Application->Handle, не суть важно.

Автор: Mpak 8.1.2007, 17:20
Еще раз спасибо!
Все работает прекрасно!
 smile 

Автор: teesync 27.7.2022, 06:49
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)