Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как завершить приложение?

6.0K
19 марта 2008 года
Tramp
71 / / 25.07.2006
try
{
ADOConnection1->Connected = true;
}
catch(...)
{
MessageDlg("Ошибка", mtError, TMsgDlgButtons() << mbOK, 0);
DestroyWindow(Application->Handle);
Application->ProcessMessages();
}

Так правильно?
11
19 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Tramp
try
{
ADOConnection1->Connected = true;
}
catch(...)
{
MessageDlg("Ошибка", mtError, TMsgDlgButtons() << mbOK, 0);
DestroyWindow(Application->Handle);
Application->ProcessMessages();
}

Так правильно?



TApplication::Terminate

6.0K
19 марта 2008 года
Tramp
71 / / 25.07.2006
Спасибо! работает!
А в каком случае Close() не будет работать?
11
19 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Tramp
Спасибо! работает!
А в каком случае Close() не будет работать?



В OnFormCreate, TForm:TForm(...)

6.0K
20 марта 2008 года
Tramp
71 / / 25.07.2006
Вот так пришлось сделать:

void __fastcall TMain::ApplicationEventsException(TObject *Sender,
Exception *E)
{
Application->Terminate();
}
9.3K
20 марта 2008 года
iridum
175 / / 26.08.2007
PostQuitMessage(0);
или
ExitProcess(0);
8.8K
22 марта 2008 года
EpoxDe1u
56 / / 29.09.2006
В продолжение вопроса.
Как корректно написать код. Нужно закрыть приложение, потом открыть батник (*.bat). Это необходимо т.к. батник перемещает программу, которая его запустила.
9.3K
22 марта 2008 года
iridum
175 / / 26.08.2007
Цитата: EpoxDe1u
В продолжение вопроса.
Как корректно написать код. Нужно закрыть приложение, потом открыть батник (*.bat). Это необходимо т.к. батник перемещает программу, которая его запустила.



Если я правильно понимаю, нужно переместить программу(не скопировать), можно просто скопировать программу перед выходом, а потом запускаешь батник, который удаляет текущюю программу.

8.8K
22 марта 2008 года
EpoxDe1u
56 / / 29.09.2006
Цитата:
а потом запускаешь батник, который удаляет текущюю программу.


Как его запустить автоматически по закрытии главной программы? Пробовал через Winexe, батник только мелькает на экране, и не выполняет свое содержимое (переместить прогу, запустить эту прогу из нового места).

11
22 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: EpoxDe1u
Как его запустить автоматически по закрытии главной программы? Пробовал через Winexe, батник только мелькает на экране, и не выполняет свое содержимое (переместить прогу, запустить эту прогу из нового места).



в теле самого ехе-шника врядли удасться запустить его удаление...
можно сделать что бы bat-ник запускал аппликуху, и последенй строчкой после ее завершения удалял

8.8K
22 марта 2008 года
Se AD WMD
165 / / 10.01.2007
Добавить несколько строчек кода надо (к примеру на onformcreate):
 
Код:
if(ParamStr(1)=="/delete")
  DeleteFile(ParamStr(2));

и из батника запускать прогу в новоустановленом месте так: new_dir\app.exe /delete old_dir\app.exe.
Хотя помоему это полный изврат.
5.3K
22 марта 2008 года
Somebody
185 / / 24.12.2006
Bat-файл для удаления проги (запускается прогой в конце её работы).
 
Код:
:SomeLabel
del SomeFile.exe
if exist SomeFile.exe goto SomeLabel
6.0K
25 марта 2008 года
Tramp
71 / / 25.07.2006
Только что попробывал
PostQuitMessage(0);
прекрасно работает В OnFormCreate, TForm:TForm(...)
А вот на это вылетает ошибка.
ExitProcess(0);

У меня такой вопрос
после команды PostQuitMessage(0);
прерывается выполнения функции или
нужно писать Abort(); ?
11
25 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Tramp
Только что попробывал
PostQuitMessage(0);
прекрасно работает В OnFormCreate, TForm:TForm(...)
А вот на это вылетает ошибка.
ExitProcess(0);

У меня такой вопрос
после команды PostQuitMessage(0);
прерывается выполнения функции или
нужно писать Abort(); ?



The PostQuitMessage function posts a WM_QUIT message to the thread's message queue and returns immediately; the function simply indicates to the system that the thread is requesting to quit at some time in the future.

When the thread retrieves the WM_QUIT message from its message queue, it should exit its message loop and return control to the system. The exit value returned to the system must be the wParam parameter of the WM_QUIT message.

ЗЫ: возможны утечки памяти... хотя винда наверно умная, справится

6.0K
25 марта 2008 года
Tramp
71 / / 25.07.2006
oxotnik333 что же делать дабы избежать утечки памяти?
11
25 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Tramp
oxotnik333 что же делать дабы избежать утечки памяти?



перед PostQuitMessage поудалять все динамически-созданные объекты

6.0K
26 марта 2008 года
Tramp
71 / / 25.07.2006
oxotnik333 а у меня таких объектов нет ;) и форма одна
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог