![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка при прерывании программы. [D7, XP]
Василич © (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]
Ошибки надо обрабатывать.