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

Вниз

не перехватывается WM_QUERYENDSESSION !   Найти похожие ветки 

 
VikMix   (2006-01-29 12:31) [0]

Здравствуйте! CanClose = false в FormCloseQuery(),
вставил свой обработчик на WM_QUERYENDSESSION и WM_ENDSESSION, но при выключении комп-ра не вызывается! Может ли проблема быть в том, что приложение находится в состоянии minimize ? если да то что делать? ХП просто отказывается выключаться!


 
Юрий Зотов ©   (2006-01-29 12:57) [1]

Если CanClose всегда False, то и не должно выключаться, Вы же сами запретили.

А что обработчик не вызывается - код в студию.


 
Набережных С. ©   (2006-01-29 12:58) [2]

var
 EndSessionFlag: boolean = false;

procedure ...FormCloseQuery(...);
begin
 CanClose:= EndSessionFlag;
end;

procedure ...WmQueryEndSession(...);
begin
 EndSessionFlag:= true;
 inherited;
end;


 
VikMix   (2006-01-29 13:26) [3]

Дело в том что в обработчике уст-ся спец влаг разрешающий закрыть прил-е.
Вот код:

....
 protected
 procedure WMGetSysCommand(var Message :TMessage); message WM_SYSCOMMAND;
......

procedure TMainForm.WMGetSysCommand(var Message : TMessage) ;
Begin
if Message.wParam = SC_MINIMIZE then
  begin
  TrayTimer.Enabled:=true; // вызывается!!! значит обработчик рабочий!
  Inherited ;
  end Else
if (Message.wParam=WM_QUERYENDSESSION)or(Message.wParam=WM_ENDSESSION)then
  begin
  // halt;
  CantClose:=false;
  MainForm.Close();
  end else
  Inherited ;
End;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if CantClose then
begin
 CanClose:= false;
 Application.Minimize;  // я склонен к проблеме Minimize хотя это наверно глупость (
 TrayTimer.Enabled:=true;
end ;
end;


 
Набережных С. ©   (2006-01-29 13:45) [4]

Мда-а...уж... Откуда этот бред?

 TForm1 = class(TForm)
   procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 private
   { Private declarations }
   FEndSessionFlag: boolean;
   procedure WmQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 CanClose:= FEndSessionFlag;
end;

procedure TForm1.WmQueryEndSession(var Message: TWMQueryEndSession);
begin
 FEndSessionFlag:= true;
 inherited;
end;


 
Плохиш ©   (2006-01-29 14:46) [5]


> procedure TMainForm.FormCloseQuery(Sender: TObject; var
> CanClose: Boolean);
> begin
> if CantClose then
> begin
>  CanClose:= false;
>  Application.Minimize;  // я склонен к проблеме Minimize
> хотя это наверно глупость (
>  TrayTimer.Enabled:=true;
> end ;
> end;

Ты сам запретил форме закрываться, о чём в [1] и сказано.

> Набережных С. ©   (29.01.06 13:45) [4]
> Мда-а...уж... Откуда этот бред?

Полностью поддерживаю



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
2-1138815535
korban
2006-02-01 20:38
2006.02.19
Работа с Listbox


1-1137884308
ancot
2006-01-22 01:58
2006.02.19
Очередной генератор отчетов


15-1138400646
GanibalLector
2006-01-28 01:24
2006.02.19
Прочее вместо "Потрепаться"


15-1138632090
Din
2006-01-30 17:41
2006.02.19
Как сделать чтобы Интернет Эксплороер не выкачивал флеш-ролики?


1-1137584648
Monk123
2006-01-18 14:44
2006.02.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский