![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать о завершении работы Windows XP? [D7, XP]
Aleks © (2010-09-24 11:43:00)Нужно при завершении работы Виндовс запомнить координаты окна программы,чтобы восстановить исходное положение окна при следующем запуске Виндовс. Как узнать о завершении работы Windows XP чтобы сохранить эти данные?
И. Павел (2010-09-24 15:43:00) [21]> [23] Ega23 © (24.09.10 15:38)
Вам даже автор вопроса сказал, что ему это не подходит. Что если закрывает окно не система, то оно должно оставаться в трее. Зачем же флудить?
> [5] Aleks (24.09.10 12:09)
> OnCloseQuery нельзя использовать, так-как окно программы
> во время работы юзер может сам закрыть,а позже открыть при
> надобности из значка в трее. :(
> А если завершать работу Виндовс,координаты не
Ega23 (2010-09-24 15:38:00) [22]
> а порекомендовали OnCloseQuery в [16]
Если ты внимательно посмотришь предысторию и подумаешь, то поймёшь почему.
И. Павел (2010-09-24 15:35:00) [23]> [21] Ega23 © (24.09.10 15:33)
Чего же вы сами не поинтересовались а порекомендовали OnCloseQuery в [16]? Или вас не касаются придуманные вами же правила?
Ega23 (2010-09-24 15:33:00) [24]
> Я просто предположил, что автору может потребоваться именно
> это сообщение.
Так возьми и уточни, что КОНКРЕТНО нужно автору. В 90% случаев начинающий "желает странного" и придумывает ректальные механизмы по воплощению оного в жизнь.
Так вот, прежде чем учить его этому странному, поинтересуйся, чего он вообще хочет.
Ega23 (2010-09-24 15:31:00) [25]
> Переобоснуй :)
Выход пользователя из системы <> завершению работы системы, не?
И. Павел (2010-09-24 15:25:00) [26]> [13] Ega23 © (24.09.10 15:06)
Ваш комментарий абсолютно бесполезен а еще глуповат (чась про "совращение").
Я просто предположил, что автору может потребоваться именно это сообщение. Дело в том, что раз есть окно со своими координатами, значит оно отображается на экране, а значит его может быть нужно закрывать при закрытии сессии. Во всяком случае, OnCloseQuery [16] вообще не имеет отношения к завершению работы Windows.
Aleks (2010-09-24 15:22:00) [27]Погуглил,нашел такую статью: http://www.realcoding.net/article/view/217
Автор пишет должно работать
Leonid Troyanovsky (2010-09-24 15:18:00) [28]
> Ega23 © (24.09.10 15:06) [13]
> Скорость и оперативность важна в совращении одноклассниц,
А то одноклассники опередят?
> а не в написании как можно скорее в "Начинающим".
Дык, вроде, не было спешки, ответ на [0].
> Даже не так, WM_QUERYENDSESSION возникает во вполне определённом
> случае.
Переобоснуй :)
--
Regards, LVT.
Ega23 (2010-09-24 15:17:00) [29]
procedure TForm6.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
try
SaveSomething;
finally
CanClose := True;
end;
end;
Плохиш (2010-09-24 15:17:00) [30]
> Aleks (24.09.10 15:13) [14]
>
>
> Application.Terminate;//закрываю программу
>
> Теперь если закрыть окно заметок,то координаты сохраняются
> и прога закрывается полностью(а должна оставатся в трее)
> В чем трабла не пойму
Мая рыдать дольго.....
Aleks (2010-09-24 15:13:00) [31]добавил в прогу такую процедуру:
TForm1.WMCloseQuery;
begin
SaveState;//сохраняем координаты
Application.Terminate;//закрываю программу
end;
Теперь если закрыть окно заметок,то координаты сохраняются и прога закрывается полностью(а должна оставатся в трее). А если завершать работу Виндовс,координаты не сохраняются.В чем трабла не пойму :(
Ega23 (2010-09-24 15:06:00) [32]
> Можно отлавливать сообщение WM_QUERYENDSESSION и в его обработчике
> делать нужные действия.
Скорость и оперативность важна в совращении одноклассниц, а не в написании как можно скорее в "Начинающим".
WM_QUERYENDSESSION возникает не тольков случае завершения работы Windows.
Даже не так, WM_QUERYENDSESSION возникает во вполне определённом случае.
И. Павел (2010-09-24 13:48:00) [33]> [0] Aleks (24.09.10 11:43)
Можно отлавливать сообщение WM_QUERYENDSESSION и в его обработчике делать нужные действия.
Dimka Maslov (2010-09-24 13:47:00) [34]На самом деле, если действовать с умом, можно при штатном завершении программы, свёрнутой в трей или развёрнутой во весь экран сохранить координаты и размеры главной формы. И делается это при помощи функции GetWindowPlacement в OnCloseQuery (сохранение) и задание соотв. свойств формы в OnCreate (восстановление)
sniknik (2010-09-24 13:04:00) [35]> Юзер может парковать окно в любое место раб.стола Виндовс и эти координаты нужно запоминать
а почему запоминать нужно при завершении виндовс, а не в момент "после парковки"?
ну вот выключили комп по питанию, и ???
Плохиш (2010-09-24 12:37:00) [36]
> Aleks (24.09.10 12:34) [8]
В [2] сказали уже.
Aleks (2010-09-24 12:34:00) [37]>Anatoly Podgoretsky. Программа нужна для внесения заметок с постоянным отображением окна на раб.столе Виндовс(аналог заметок Виндовс 7). Окно заметок можно закрыть и открыть позже с помощью иконки в трее. Юзер может парковать окно в любое место раб.стола Виндовс и эти координаты нужно запоминать и восстанавливать при след.запуске Виндовс. Как сохранять придумал,а как отловить завершение работы не знаю :(
Anatoly Podgoretsky (2010-09-24 12:14:00) [38]> Сергей М. (24.09.2010 12:08:04) [4]
Я не знаю зачем, но автор хочет только в случае завершения работы Windows
XP.
Сергей М. (2010-09-24 12:13:00) [39]> юзер может сам закрыть,а позже открыть
И что ?
Разве юзеру не нужно чтобы и в этом случае форма восстановила свою предыдущую позицию ?
Aleks (2010-09-24 12:09:00) [40]OnCloseQuery нельзя использовать, так-как окно программы во время работы юзер может сам закрыть,а позже открыть при надобности из значка в трее. :(