![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| dee63 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 14.12.2007 Где: Самара Репутация: нет Всего: нет |
Всем привет!
Пишу проект. Смысл его части в том, что надо отловить появление флешки и запустить другую процедуру. В части отлова флешки я не изобретал велосипед и сделал так:
Т.е. что тут получается: как только приходит в систему флешка, то процедура PROC ловит это событие и процедура AddToLog должна вывести в мемо (имеет имя log) строку, которую ей передает процедура Proc. По факту имею: Флешку ловит, доходит до момента, когда AddToLog указывается добавить строку в мемо (строка выделена красным в коде) и выкидывает ошибку EAccess Violation скрине во вложении. Я пробовал с любым объектом-не возможно его модифицировать, та же ошибка. Однако Showmessage работает. Что я не так написал? Ткните пальцем плиз) Присоединённый файл ( Кол-во скачиваний: 10 )
eaccesserror.jpg 85,53 Kb |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
А в этот момент лог уже создан? В него можно что то написать руками например?
|
|||
|
||||
| dee63 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 14.12.2007 Где: Самара Репутация: нет Всего: нет |
ДА, создан.
там принцип какой: Форма открыта, я специально подождал минут 5 и воткнул флешку. тут же и понеслось |
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 1 Всего: 9 |
Такой вопрос, флешка вставляется после запуска программы или до?
-------------------- Фсё будет хорошо!!! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Не заноси напрямую в мемо.
Заноси куда-нить в другое место, а потом периодически, или по сигналу, закидывай в мему. В качестве сигнала предлагаю использовать PostMessage - сработает, когда очередь сообщений освободится. Попытка влезть в очередь к самому себе во время обработки сообщений, и при этом, требуя результата, сносит крышу в ядре винды и она взрывает исключение. А занесение строк в мемо - как раз и есть вызов SetMessage, который ждет ответа, но не будет получен, т.к. этим ожиданием ты заткнул обработку сообщений. |
|||
|
||||
| dee63 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 14.12.2007 Где: Самара Репутация: нет Всего: нет |
После открытия формы, естественно. До-она не поймает событие. Добавлено через 10 минут и 35 секунд
В принципе оно верно, НО... я спецом сделал еще 1 проект и в нем ввел все то же самое. Процедуры перенесены 1 в 1 по CTRL+C. и что вы думаете? Работает как часы и не пикает!!! А в предыдущем проекте ругается. См вложение проекта. Нифга не понимаю. Присоединённый файл ( Кол-во скачиваний: 7 )
usb__________.7z 153,17 Kb |
||||
|
|||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
а может так случиться, что в обработчике log не сработает ни одно из условий, по которому присваивается значение переменной, и в AddToLog уйдет ниинициализированная локальная переменная mess? Что скорее всего и может иногда валить программу.
Отсюда вывод: не забываем о том, что локальные переменные неплохо бы как-то инициализировать. Это сообщение отредактировал(а) MetalFan - 20.5.2011, 14:02 -------------------- There are always someone smarter than you... |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
Строки в Delphi управляются автоматически, поэтому их инициализацию компилятор вставляет сам. И делать это вручную не нужно - компилятор даже никакого хинта и варнинга не выводит
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |