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

Вниз

Вот так написал...   Найти похожие ветки 

 
Злыдень   (2002-10-01 22:06) [0]

Народ, написал я программку, и попался вот такой глюк. Если моя програ работает, то виндовс (любой, 9х, 2к, XP) не может перезагрузится или выключится (из меню "завершение работы"). Винда даже не пытается завершить работу моей программы, а просто работает дальше как ни в чем небывало =\. Мож кто сталкивался?
Из узких мест тока CloseQuery - (из одной строчки: CanClose :=true). Из сторонних компонент CoolTrayIcon и FormStorage из RxLib.


 
Pat   (2002-10-01 22:30) [1]

>...CoolTrayIcon...
Частый глюк...Пиши лучше руками


 
Злыдень   (2002-10-02 18:25) [2]

Пробовал удалить CoolTrayIcon - нифига не помогло =\
при завершении работы мой FormCloseQuery получает управление, а FormClose нет.

Про CoolTrayIcon. Вот что он написал:

Occasionally someone reports that an application using CoolTrayIcon prevents the user from logging off until he manually terminates the application. I"ve more or less come to the conclusion that this is not a bug in CoolTrayIcon. More likely it"s a bug in some other third party component. At least it seems people always get this error when they use CoolTrayIcon together with other third party components. If you get this error try removing the other components one at a time and see if that doesn"t solve the problem (or even simpler - run my demo app. and see if it has the problem). Afterwards, if you still have reason to believe CoolTrayIcon is the problem, don"t hesitate to tell me, but please perform this simple test of exclusion first.


 
Mike Kouzmine   (2002-10-02 18:44) [3]

А зачем эта строчка нужна если можно всегда?


 
Song   (2002-10-02 19:02) [4]

Надо завершать самому по WM_ENDSESSION или лучше обрабатывать и WM_QUERYENDSESSION тоже.


 
Злыдень   (2002-10-02 22:02) [5]

Mike
Строчка там нужна "на всякий случай", когда происходит что-то чего не понимаешь... там есть еще действия, но они не имеет никакого отношения к проблеме.

Song
Да, ты прав, оказывается FormClose не вызывается никогда при завершении работы Windows. Ща буду пытаться эт реализовать..


 
Song   (2002-10-02 23:14) [6]

Да ну, в самом деле я прав? :-))))


 
Злыдень   (2002-10-03 01:03) [7]

скажите дижею, я просто ....ю..

сделал так:

TMainForm = class(TForm)
..
private
{ Private declarations }
procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
...
end;

procedure TFormMain.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
ShowMessage("finita");
Message.Result:=1;
end;

нифига нету ShowMessage, и все равно винда не перегружается...
В чем грабли?


 
Злыдень   (2002-10-03 01:19) [8]

....вот поправочка.
Иногда, все таки, QueryEndSession вызывается... а иногда нет. =))) Закономерностей не наблюдается.

Но если EndQuerySession не вызвался, вызывается EndSession.

дурдом кароче.... если напишу в обоих обработчиках Application.Terminate ниче? =)))) а то у меня идей больше нету =(


 
Злыдень   (2002-10-03 01:24) [9]

я плачу.... =)
делаю application.terminate в EndQuerrySession и в EndSession.
результат: программа завершается, но... =)))))))))))))))))) виндовс НЕ перезагружается. вернее перегружается, но только со второго раза =))).


 
Song   (2002-10-03 08:25) [10]

Да блин, да перехватывайте Вы WM_ENDSESSION и в случае WParam=1 делайте Close. Всё! Делов-то!


 
Злыдень   (2002-10-03 19:40) [11]

А вот и нифига! не перегружается =))
пробовал и Terminate и Close в QuerrySession и EndSession... программа завершается, но не перегружается...
наверное нада еще inherited добавить в обработчики


 
Song   (2002-10-03 19:41) [12]

Ну естесно, Вы не добавили что ли? ;-)


 
aus   (2002-10-03 22:35) [13]

Такое бывает когда Application.ShowmainForm = false.
Нужно сделать в OnClose Action := caFree; (а по умолчанию получается Action = caHide).
Может это поможет.


 
Злыдень   (2002-10-04 00:14) [14]

Ребята... я сдался =))


 
Aleks1   (2002-10-04 04:13) [15]

2 Злыдень
И все-таки похоже, что кто-то или что-то у тебя перехватывает обработку WM. А ты уже ловишь только остатки.


 
Song   (2002-10-04 09:36) [16]

Видишь моё сообщение Song © (03.10.02 08:25) ?
Вот так у меня работает и в 98 и в NT 4.0 и в XP
Больше ОС проверить не мог, нету просто :-)



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

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

Наверх





Память: 0.48 MB
Время: 0.007 c
4-45618
arcoant
2002-08-29 15:08
2002.10.14
Как нажать кнопку в чужой программе?


14-45591
DeMoN-777
2002-09-21 09:35
2002.10.14
ATX или AT


1-45396
sachem
2002-10-03 09:25
2002.10.14
как засунуть файл в Exe-шник


3-45187
Serv
2002-09-20 13:23
2002.10.14
Поиск записи


3-45230
Praco
2002-09-24 09:47
2002.10.14
В DataModule, в инспекторе объектов исчезают ссылки на обработчик





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский