Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Закрытие программы [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;
книгу купи, да?


Наверх

Титульная страница Поиск, карта сайта Написать письмо