Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
1-1102426790
Aleksandr.
2004-12-07 16:39
2004.12.19
Какое сообщение отправить TMemo, чтобы он проскроллировался?


1-1102307317
Ivvvan
2004-12-06 07:28
2004.12.19
Интеграция c Outlook Express


1-1102032607
Garfunkel
2004-12-03 03:10
2004.12.19
Сворачивание в трей при загрузке Windows


14-1101720792
_1008_
2004-11-29 12:33
2004.12.19
Вопрос жителям востока Украины


14-1101264585
Думкин
2004-11-24 05:49
2004.12.19
С днем рождения! 24 ноября





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский