Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка при прерывании программы. [D7, XP]


Страницы:   1 2

Василич ©   (2010-11-15 07:53:00) 

Приветствую.

Ситуация такая: Выполняется программа, подгружаются 2 вордовских документа, все это перелопачивается, вдруг внезапно вылезает ошибка (или я сам останавливаю выполнение программы) - а 2 ворда остаются в памяти висеть, приходиться вручную снимать. Можно ли какой-нибудь обработчик написать для таких ситуаций, снимать ворды из ОЗУ?


Дмитрий Белькевич   (2010-11-16 19:00:00) [1]


> У меня, как юзера, есть менеджер процессов, от него ваши
> ухищрения тоже не помогут.


У тебя, как у юзера не должно быть прав на менеджер процессов. А если есть - то админу по рукам. А если ты сам и админ - то сам себе злой буратино.


Плохиш   (2010-11-16 13:25:00) [2]


> просто была маленькая надежда что есть какая-то маленькая
> лазейка для фикса этой неудобности

Подумай, много ли ты успеешь выполнить действий после выстрела в голову?


Василич   (2010-11-16 05:50:00) [3]

Моя программа не нужна юзерам, она не для широкого круга, только для меня, я и юзер, и кодер, и тестер и все остальное. Ну как и думал, что try не поможет, просто была маленькая надежда что есть какая-то маленькая лазейка для фикса этой неудобности ;) Всем привет и спасибо.


Германн   (2010-11-16 00:53:00) [4]


> Leonid Troyanovsky ©   (15.11.10 22:46) [17]

В отличие от вас с Плохишом я практически не знаю немецкий. Поэтому просто процитировал Плохиша, не обращая внимания на тонкости перевода. :)

P.S.
<offtop>
В плане общей терминологии меня больше заинтересовала вот эта заметка:
http://www.transl-gunsmoker.ru/2008/11/blog-post_4239.html
Как же теперь грамотно формулировать вопрос про "там где часики"?
:)
</offtop>


Leonid Troyanovsky   (2010-11-15 22:46:00) [5]


> Германн ©   (15.11.10 22:00) [16]

> Эт точно. :)

У нас - Диспетчер задач or Task manager у других.

--
Regards, LVT.


Германн   (2010-11-15 22:00:00) [6]


> У меня, как юзера, есть менеджер процессов, от него ваши
> ухищрения тоже не помогут.
>

Эт точно. :)


Юрий Зотов   (2010-11-15 21:47:00) [7]


> Василич   (15.11.10 19:35) [10]
> CTRL+F2 - program reset. Поможет ли от него try..except?

Конечно не поможет. Программа же запущена из IDE и работает под управлением отладчика - он ее и прерывает.

Но ведь у юзера нет отладчика, не так ли? Он-то ведь этого сделать не сможет.


Плохиш   (2010-11-15 21:24:00) [8]


> Дмитрий Белькевич   (15.11.10 20:56) [12]
>
>
> > CTRL+F2 - program reset. Поможет ли от него try..except?
>
>
>
> У юзера контрола-эфдва нету.
>

У меня, как юзера, есть менеджер процессов, от него ваши ухищрения тоже не помогут.


Плохиш   (2010-11-15 21:23:00) [9]


> Василич   (15.11.10 19:35) [10]
>
> CTRL+F2 - program reset. Поможет ли от него try..except?
>

От этого никакие ухищрения в программе не помогут.

PS. Не с той проблемой паришься.


Дмитрий Белькевич   (2010-11-15 20:56:00) [10]


> CTRL+F2 - program reset. Поможет ли от него try..except?


У юзера контрола-эфдва нету.


Василич   (2010-11-15 19:36:00) [11]

Юрий Зотов, ок попробую try.


Василич   (2010-11-15 19:35:00) [12]

CTRL+F2 - program reset. Поможет ли от него try..except?


Юрий Зотов   (2010-11-15 19:18:00) [13]


> Василич   (15.11.10 18:52) [8]

Вы путаете прерывание программы дебаггером и юзером. Это не одно и то же, так что все будет нормально.


Василич   (2010-11-15 18:52:00) [14]

И.Павел - да нет же, в самой делфе я нажимаю CTRL + F2 - что и ЕСТЬ жесткое аварийное завершение, прерывание программы.


И. Павел   (2010-11-15 13:16:00) [15]

> [4] Василич   (15.11.10 13:06)

Не сработает при жестком аварийном завершении, а CTRL + F4 - это просто закрытие окна - даже блокнот в этом случае сохранение предлагает.


Сергей М.   (2010-11-15 13:12:00) [16]


> сомневаюсь что они сработают


Сомнения высосаны из пальца ?
Или есть серьезные основания для этих сомнений ?


Anatoly Podgoretsky   (2010-11-15 13:10:00) [17]

> Василич  (15.11.2010 13:06:04)  [4]

Программисту не положено бояться количества, боять надо кривонаписаных,
съэкономленых программ.


Василич   (2010-11-15 13:06:00) [18]

Кхм, этих try..except придеться кучу ставить по всей программе... Да и сомневаюсь что они сработают. Допустим прога уже инициализиаровала олеобъекты, они исправно работают, тут я делаю брейк (CTRL+F2) - прога останавливается моментально, а ворды висят в памяти.  Жаль нельзя по событию сделать, onClose не то событие, это закрытие формы, а у меня break (CTRL+F2) или выдача ошибки.


12   (2010-11-15 10:26:00) [19]

что-то типа


try
 ExcelApp := CreateOleObject('Excel.Application');
 ExcelApp.BLABLA;  
...
except
 on  E:EOleError do
 begin
   if Pointer(IDispatch(ExcelApp)) <> nil then ExcelApp.quit;
   E.Message := E.Message + ' unit бла-бла, процедура бла-бла';
   Raise;
 end;
end;

?


Anatoly Podgoretsky   (2010-11-15 09:10:00) [20]

> Василич  (15.11.2010 07:53:00)  [0]

Ошибки надо обрабатывать.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо