Главная страница
    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.038 c
3-1100622218
neznaika
2004-11-16 19:23
2004.12.19
TADOStoredProc->Parameters->?


1-1102331011
fuzzy
2004-12-06 14:03
2004.12.19
Как нужно работать с автосоздаваемыми CheckBox ами?


3-1100953359
Iova
2004-11-20 15:22
2004.12.19
rdb$...


1-1102086456
Gek1
2004-12-03 18:07
2004.12.19
Dword в Hex


14-1101474549
dr Tr0jan
2004-11-26 16:09
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский