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

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

Нажатие на крестик (закрытие программы) [D6, WinXP]


heruvim4ik ©   (2002-04-26 20:43:00) 

Мне нужно, чтоб при нажатии на крестик, прога не закрывалась, а выполнялось другое действие, мною прописанное

Заранее благодарен


Керик   (2002-05-03 10:35:00) [1]

Вот так:
...
procedure GetMinimize(var Message: TMessage); message WM_SYSCOMMAND;
...
procedure GetMinimize(var Message: TMessage);
begin
if Message.wParam = SC_MINIMIZE then
begin
{Запишешь, чё надо выполнить при минимизации.
если после этого надо свернуться, вставь Inherited;}
end;
end;


Вадим02   (2002-05-03 06:21:00) [2]

Вообще-то в некоторых странах,например в USA, нарушение
стандарта карается по закону!Если это идея-фикс, тогда
через API необходимо зайти в раздел формирования формы
и навести там свой порядок.


Song   (2002-04-28 22:02:00) [3]

2cok © (28.04.02 15:53)
Давайте не будем придираться к пониманию вопроса. Автор получил уже ответ, который его устроил и мало того, вероятно, он уже всё сделал, а Вы всё ещё деферамбы разводите. Будьте проще...


cok   (2002-04-28 15:53:00) [4]

>Song ©
>Можно подумамать что CanClose не поможет для Alt+F4.
Вот именно, что поможет, а человек просил, чтобы помогало только при нажатии на крестик!( Мне нужно, чтоб при нажатии на крестик, прога не закрывалась, а выполнялось другое действие, мною прописанное)


Song   (2002-04-28 15:05:00) [5]

cok © (28.04.02 13:54)
1.Можно подумамать что CanClose не поможет для Alt+F4. Вы прежде чем говорить, уважаемый, просто проверьте.
2.Мы всё сказали правильно. Прога не убивается, а в обратчике onClose* выполняется его код.

Вы вообще о чём?


cok   (2002-04-28 13:54:00) [6]

2 Doom ©, Song ©
Вам же сказано:
>> при нажатии на крестик, прога не закрывалась, а выполнялось >>другое действие, мною прописанное
А вы что делаете? (наверно забыли, что еще есть Alt+F4)


Song   (2002-04-28 10:04:00) [7]

TApplication.onMinimize
WM_SYSCOMMADND, SC_MINIMIZE


heruvim4ik   (2002-04-28 00:00:00) [8]

Ещё один вопрос...
Сутьт та же, только теперь не крестик, а мнопка minimize


Atrem   (2002-04-27 13:01:00) [9]

закрывать можешь так
postquitmessage(1);


Gayrus   (2002-04-27 10:01:00) [10]

Если очень надо могу дать компонент помещает свою кнопку к стандартным, сделаешь рисунок крестика и всё путём. P.S. Сам долго мучался


VuDZ   (2002-04-26 23:39:00) [11]

заведи флажёк глобальный типа bCanClose := false, и проверяй его перед закрытием


Song   (2002-04-26 21:37:00) [12]

1.Поставь булевскую переменную в обработчик.
2.Application.Terminate - обработчики onClose* не обрабатываются.
3.WM_SYSCOMMAND, SC_CLOSE по сути повторяет 2 шаг.


Doom   (2002-04-26 21:16:00) [13]

А тебе как написали? По- орангутангски что ли?


heruvim4ik   (2002-04-26 21:09:00) [14]

Мля! Здорово, конечно, но теперь возникает другой вопрос:
как её(прогу) ЗАКРЫТЬ ПО-ЧЕЛОВЕЧЕСКИ????


Song   (2002-04-26 20:55:00) [15]

1. onCloseQuery:
CanClose:=False;
Ваши действия.
2. onClose
Action:=caNone;
Ваши действия
3. WM_SYSOMMAND
wParam=SC_CLOSE
Ваши действия

Достаточно? :)


Doom   (2002-04-26 20:54:00) [16]

событие Form.onClose


Наверх

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