Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

Как при нажатии на кнопку закрытия свернуть программу вместо выхо   Найти похожие ветки 

 
Dmitry   (2004-11-29 23:27) [0]

Прописал в OnCloseQuery
CanClose := True;
Application.Minimize;
Но возникает проблема при выключении компьютера. Программа просто не хочет закрываться и Windows не выключает компьютер.
Помогите поборототь проблему.


 
olookin ©   (2004-11-29 23:56) [1]

Что, если попробовать ловить сообщения системы, а именно, сообщения с параметром WM_QUERYENDSESSION или WM_ENDSESSION, и если таковое есть, то не делать CanClose:=true?


 
olookin ©   (2004-11-30 00:17) [2]

Вот примерно как это работает в ответ на выбор "Завершить сеанс пользователя"...

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var m: TMsg;
   z: boolean;
begin
z:=GetMessage(m,form1.handle,0,0);
showmessage(inttostr(m.message));
 if m.message=512 then CanClose:=true else begin
 CanClose:=false; Application.Minimize; end;
end;

512 - это видимо код сообщения при завершении сеанса. Код на завершение работы не смотрел, но полагаю, что он покажется в showmessage при завершении работы винды.


 
GrayFace ©   (2004-11-30 05:37) [3]

Надо ловить WM_SYSCOMMAND, а в нем SC_CLOSE.


 
Defunct ©   (2004-11-30 07:31) [4]

> CanClose := True;

И что правда работает?


 
TUser ©   (2004-11-30 09:53) [5]


>  Как при нажатии на кнопку закрытия свернуть программу вместо
> выхо [D7, WinXP]
>
> Dmitry   (29.11.04 23:27)  
> Прописал в OnCloseQuery
> CanClose := True;
> Application.Minimize;

В OnClose пиши Action:=caMinimize


 
Alexander Panov ©   (2004-11-30 10:09) [6]


 public
   { Public declarations }
   procedure OnWM_SYSCOMMAND(var Message: TMessage); message WM_SYSCOMMAND;

procedure TForm1.OnWM_SYSCOMMAND(var Message: TMessage);
begin
 if Message.WParam and $FFF0 = SC_CLOSE then
 begin
   Application.Minimize;
   Message.Result := 0;
 end
 else inherited;
end;


 
Александр Иванов ©   (2004-11-30 10:10) [7]

Проверять в onCloseQuery, если минимизирована - закрывать, иначе - минимизировать.


 
Dmitry   (2004-11-30 14:26) [8]

Пример Александра Панова сработал замечательно! Спасибо всем за помощь!


 
Alexander Panov ©   (2004-11-30 14:44) [9]

Dmitry   (30.11.04 14:26) [8]
Хочу заметить, что и Александр Иванов ©   (30.11.04 10:10) [7]сработает тоже замечателдьно.


 
Dmitry   (2004-12-01 02:28) [10]

:) Что правда - то правда. Честно говоря я не увидел сообщения Александра Иванова. Обычно когда видишь исходный код, уже ничего другого заметить не способен. Даже руки как-то сами по себе к CTRL + C тянутся :)


 
GrayFace ©   (2004-12-03 14:05) [11]

Александр Иванов ©   (30.11.04 10:10) [7] будет минимизировать приложение при завершении работы. Поэтому
Alexander Panov ©   (30.11.04 10:09) [6] лучше.


 
GrayFace ©   (2004-12-03 14:10) [12]

А вот если делать, как Александр Иванов ©   (30.11.04 10:10) [7] в OnClose.



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
14-1102004474
Alex_Petr
2004-12-02 19:21
2004.12.19
А где предпятничные задачки ?


1-1101965467
Pupkov
2004-12-02 08:31
2004.12.19
Поиск проседуры в runtime пакетах


14-1101655076
tw
2004-11-28 18:17
2004.12.19
Заставка


8-1095442821
DelManiac
2004-09-17 21:40
2004.12.19
MP3 ---> CDA


14-1101576784
ИМХО
2004-11-27 20:33
2004.12.19
"Особенности национального Интернета" (с) АП





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский