![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрытие программы [D6, Win95/98]
c0pYc@t © (2002-07-16 11:07:00)Помогите обработать сообщение возникающее при закрытии формы
Мне нужно по закрытию выполнить другое действие
Спасибо всем
c0pYc@t (2002-07-16 13:13:00) [1]>Skier Это мне и нуна
olookin (2002-07-16 13:08:00) [2]А если нужно закрыть (при определенных условиях), поставь глобальную переменную, и если она чему-то там равна, то закрыть, а если нет, то выполнить действия (с применением Abort).
Skier (2002-07-16 13:03:00) [3]>c0pYc@t
Только помни : что после Action := caFree формы не будет
в памяти - она "умрёт" !
c0pYc@t (2002-07-16 13:00:00) [4]>Skier спасибо
Skier (2002-07-16 12:55:00) [5]>c0pYc@t
Про Abort никого не слушай !
Тебе просто нужен Action := caNone
А если хочешь закрыть то
проверяй какое-то своё условие и делай
Action := caFree и усё...
c0pYc@t (2002-07-16 12:52:00) [6]Тогда другой вопросец ,
Вот ,спасибо, BAY ю использую Abort как он и сказал,
Вопрос: Как же тогда ее действительно закрыть, если в Close находится Abort
procedure TServerRun.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Abort
end;
Skier (2002-07-16 12:17:00) [7]>Song
Понял.
Но
> запуск второй копии
это же полный бред...
Song (2002-07-16 12:07:00) [8]>>А причём тут ShellExecute ???
все дела = то, что надо выполнить + запуск второй копиис передачей данных + закрытие первой
RV (2002-07-16 11:40:00) [9]ну, естественно
а если мину противотанковую подложить, то и вообще ни один процесс никогда уже не выполниться.
Skier (2002-07-16 11:38:00) [10]>Song
А причём тут ShellExecute ???
Song (2002-07-16 11:36:00) [11]procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Begin
ShellExecute(Handle,nil,PChar(Application.ExeName),nil,nil,SW_SHOWNORMAL);
End;
Однако неубиваемым он не будет т.к. при аварийном завершении onCloseQuery не выпаолнится.
RV (2002-07-16 11:29:00) [12]все дела = то, что надо выполнить + запуск второй копии с передачей данных + закрытие первой
или тут было как сделать "неубиваемый процесс"
Skier (2002-07-16 11:27:00) [13]>c0pYc@t
> Мне нужно чтобы после клика моя прога не закрылась, а просто
> выполнила действия
Поставь в
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
CanClose := False;
BAY (2002-07-16 11:26:00) [14]в OnClose вставь Abort и делай все что хочешь
c0pYc@t (2002-07-16 11:23:00) [15]Не типа не понял
Мне нужно чтобы после клика моя прога не закрылась, а просто выполнила действия
RV (2002-07-16 11:12:00) [16]в обект инспекторе у формы есть onCloseQuery
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
все дела
end;
книгу купи, да?