Форум: "Основная";
Текущий архив: 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