![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Завершение программы! [D7, XP]
NaRuTo © (2008-01-10 18:19:00)У меня возникла проблема. Программа находится в трее. Главная форма не показывается. При принудительном завершении её то есть при выполнение нажатие на кнопку она завершается, но если программа работает и вы нажимаете Завершение работы Windows она не даёт завершить работу. Я использовал
ShowWindow(Application.Handle,SW_HIDE);
Application.ShowMainForm:= False;
ShowWindow(Application.MainForm.Handle,SW_HIDE);
Помогите, если знаете!
Dib@zol (2008-01-11 21:13:00) [1]Сергей сегодня, определённо, в ударе :)
ЗЫ Аффтар, аууууу! Ждём исходник!
Сергей М. (2008-01-11 20:04:00) [2]
> Как не культурно
Угу.
Культурней амбразурой)
{RASkov} (2008-01-11 20:00:00) [3]А вообще +1
:)
{RASkov} (2008-01-11 19:59:00) [4]> [30] Сергей М. © (11.01.08 19:57)
Как не культурно.... :)
Дети же.... поверят еще....
Сергей М. (2008-01-11 19:57:00) [5]
> NaRuTo (11.01.08 19:56) [28]
Очком-с)
{RASkov} (2008-01-11 19:57:00) [6]> [28] NaRuTo (11.01.08 19:56)
> Как на этом сайте та работать!
Никто не заставляет :)
NaRuTo (2008-01-11 19:56:00) [7]Как на этом сайте та работать!
Dib@zol (2008-01-11 19:52:00) [8]ЗЫ только не напрямую на форум!!! Лучше на внешний файлообменник, напр на этот: http://www.webfile.ru
Dib@zol (2008-01-11 19:51:00) [9]Неа :(
Вощем, аффтару: выкладывай код, а мы почитаем. А также укажем где грабли :)
Сергей М. (2008-01-11 19:47:00) [10]Что, даже с мылом не лезет ?
{RASkov} (2008-01-11 19:40:00) [11]> [22] NaRuTo (11.01.08 19:37)
У тебя 7 форм и все создаются "автоматом" смотри у всех вот этот обработчик OnCloseQuery...
{RASkov} (2008-01-11 19:39:00) [12]> [22] NaRuTo (11.01.08 19:37)
> Так тоже не помагает
Попроси кого нибудь... только не на форуме, а "вживую")
NaRuTo (2008-01-11 19:37:00) [13]Помыль поможет
Так тоже не помагает
Сергей М. (2008-01-11 19:33:00) [14]
> Не помогает
Помыль - поможет
NaRuTo (2008-01-11 19:30:00) [15]Не помогает!
@!!ex (2008-01-10 21:34:00) [16]> [18] NaRuTo (10.01.08 21:32)
Application.Terminate ? ^))
NaRuTo (2008-01-10 21:32:00) [17]Она у меня и без этого обработчика не выключается. Я добавил его из Delphi World
Dib@zol (2008-01-10 21:23:00) [18]А можно нескромный вопрос? А нафига вообще было ставить свои обработчики?
> if Msg.EndSession = True then Close();
Во-первых, постфикс " = True " это моветон. Грубо говоря, компилятор это интерпретирует как
if (Логическая_переменная = True) = True then...
итого - имеем одно лишнее сравнение, что к тому же не добавит изящества коду.
Так что впредь пиши просто:
if Логическая_переменная then...
Насчёт " = False " - ну тут уж ничего не поделаешь, разве что вместо него if not Логическая_переменная thenписать. А можно и = False оставить. Без разницы.
Так. О чём бишь я? Ах да, о коде.
Чему ты удивляешься, если сам прописал "не выключаться" при приходе WM_ENDSESSION? Сам факт прихода етой мессаги означает, что нужно без разговоров выключаться! Это вам не WM_QUERYENDSESSION! Вощем, убирай обработчик EndSession'a и жЫви спокойно :) Или вразумительнообъясняй, на кой чорт он тебе нужен :)
NaRuTo (2008-01-10 20:47:00) [19]В FormClose я только указал Action:= caFree;
а вот
WMEndSession
procedure TMainForm.WMEndSession(var Msg: TWMEndSession);
begin
if Msg.EndSession = True then
Close();
inherited;
end;
@!!ex (2008-01-10 20:44:00) [20]> [14] NaRuTo (10.01.08 20:37)
Вооот.
А теперь неплохо было бы посмотреть реализацию методов FormClose и WMEndSession