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

Вниз

нельзя выполнить ShutDown :(   Найти похожие ветки 

 
Novichok   (2004-02-28 23:18) [0]

Когда запущена моя программа, нельзя выполнить ShutDown или Restart машины, если прогу выключить то все ok, система спокойно выключается. Программа небольшой чат с сокетами. Стал обрабатывать событие OnCloseQuery :

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 try // Если не ставить try вылетает ошибка
   Form1.Close;
 except
 end;
end;


Если делать так, то прога закрывается, но завершение работы дальше не продолжается.
Уважаемые мастера что делать ?


 
МАКСЮХА ©   (2004-02-29 10:52) [1]

Я так и думал, что чат:)
Была та - же проблема... попробуй сделать перед выходом глубокий диссконнескт...


 
DDA ©   (2004-02-29 11:53) [2]

Ну наверное раз программа дошла уже до процедуры CloseQuery,
то программы уже закрывается и не стоит закрывать ее ещё раз (Form1.Close)


 
Pashka R. ©   (2004-02-29 12:32) [3]

тебе надо обрабатывать сообщение WM_ENDSESSION и по нему закрывать свою прогу

---
Best regards, Pashka R. <pashka@land.ru>

 ICQ:  860730


 
Pashka R. ©   (2004-02-29 12:37) [4]

сорри, нужно обрабатывать WM_QUERYENDSESSION :)

---
Best regards, Pashka R. <pashka@land.ru>

ICQ:  860730


 
Novichok   (2004-02-29 12:48) [5]

DDA
> уже закрывается и не стоит закрывать ее ещё раз (Form1.Close)
Если не делать Form1.close; то прога вообще не выключается, не после первой не после второй попытки

> МАКСЮХА >попробуй сделать перед выходом глубокий диссконнескт...
ClientSocket1.Destroy ? ClientSocket1.active:=false (так я дклал, не помогло)
Pashka R.
> нужно обрабатывать WM_QUERYENDSESSION :)
Разве это не одно и то же что OnCloseQuery ???


 
Lexer ©   (2004-02-29 12:50) [6]


> DDA ©   (29.02.04 11:53) [2]
> Ну наверное раз программа дошла уже до процедуры CloseQuery,
> то программы уже закрывается и не стоит закрывать ее ещё
> раз (Form1.Close)


ага, надо просто сделать проверку и установить CanClose в True


 
JSilver   (2004-03-03 20:33) [7]

Короче, если хочешь все сам узнать ищи в FAQ или книгах по Делфи тему про завершение винды и как правильно на это реагировать.
   Если приложение активно и вы пытаетесь завершить работу Windows (Shut Down), происходят следующие события (с соблюдением последовательности):
1.FormCloseQuery
2.FormDestroy
Мы видим, что метод FormClose в этом случае не вызывается.

private
{--------------------------------------------------------}
{ Объявляем свой обработчик сообщения WM_QUERYENDSESSION }
{--------------------------------------------------------}
procedure WMQueryEndSession(
var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;

procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin

inherited;   { сначала сообщание должен обработать наследуемый метод }
{------------------------------------------------------------}
{ в этой точке вы также можете сообщить Windows о неготовности       }
{ приложения завершить работу...                                     }
{ Message.Result:=0;                                                 }
{--------------------------------------или----------------------}
{ вызов процедуры освобождения ресурсов, предусмотренной в FormClose }
{-------------------------------------------------------------}
end;



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

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

Наверх





Память: 0.47 MB
Время: 0.032 c
4-1077731833
Labert
2004-02-25 20:57
2004.04.25
Как эффективнее реализовать непрямоугольную кнопку?


1-1081147580
СержК
2004-04-05 10:46
2004.04.25
Создание bat файла


3-1080462762
Хамс
2004-03-28 12:32
2004.04.25
Как запихнуть в Interbase офскую DB изображение ?


3-1080206678
ГАГН
2004-03-25 12:24
2004.04.25
Fast Report


6-1077881008
4ward
2004-02-27 14:23
2004.04.25
работа с TClient/TServerSocket





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