Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.08;
Скачать: CL | DM;

Вниз

EInvalidPointer?   Найти похожие ветки 

 
ZHK ©   (2003-08-26 13:22) [0]

Спрошу еще раз. Видно модератора типает от слова "задница", поэтому вопрос мой, судя по всему, удалили. Тама такая: создал приложение. Кинул на форму TIDTelnet и TTrayNotifyIcon. TTrayNotifyIcon компонент не стандартный делфийский, но код я просмотрел, вроде без ошибок. Программа никаких объектов сама не удаляет, поэтому, по идее, обращений к несуществующим объектам не должно быть. Память динамически не выделяю и т.д. В общем, просто соединяюсь с сервером, качаю данные и закрываюсь. Все. И все нормально пока программа не начинает закрываться. Тут то и беда. Винда говорит "неизвестное программное исключение", а делфи, в свою очередь, говорит "EInvalidPointer ... Invalid pointer operation". Оттрассировал - ошибка возникает в TTrayNotifyIcon.Destroy в строчке FIcon.Free. При этом Assigned(FIcon)=True, это я тоже проверял. CloseHandle(FIcon.Handle), вместо FIcon.Free приводит к тому, что ошибка перемещается на строчку end; TTrayNotifyIcon.Destroy. Вот так. Кто поможет?


 
Miralex ©   (2003-08-26 13:29) [1]

я не спец но могет тебе надо не Destroy а Free писать! у самого было чтото типа такого давненько!


 
Skier ©   (2003-08-26 13:30) [2]

Действительно "не спец" :)


 
han_malign ©   (2003-08-26 13:43) [3]

>Assigned(FIcon)=True
- говорит только о том, что DWORD(FIcon)<>0, но не о том, что это валидный указатель, который был создан и еще не отпущен... А EInvalidPointer возникает, чаще всего, когда происходит обращение, по старому указателю, к области памяти которая уже "отпущена"(а вот TIcon( nil).Free - как раз пройдет на ура).


 
Anatoly Podgoretsky ©   (2003-08-26 16:06) [4]

Можешь не гадать, ошибка в программе, вполне вероятно в TTrayNotifyIcon, FIcon не действительный. Теперь трассируй компонент и свою программу. Желательно поставить точнки останова во всех местах где изменяется FIcon


 
ZHK ©   (2003-08-27 07:59) [5]

То-то и оно, что FIcon изменяется один раз на стадии создания проекта. Больше я его не трогаю. Вообще я этот модуль ранее применял, пока работало. В принципе не я его писал, но, всеж, явных ошибок не обнаружил. У меня закрадывается подозрение, что все-таки надо сказать "Спасибо, Билли", ибо ошибка закрадывается на стадии формирования сообщений. Может просто парни использовали что-то не то, с этим я не разбирался. А вообще, после удаления модуля из программы, все стало гораздо лучше. У меня правда есть еще чуть претензии к Indy, ибо если программа выполняется в отладчика, то возникает "Socket error", а без делфи - все нормально. Хотя это возможно просто конфликт только с отладчиком.



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

Текущий архив: 2003.09.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-24383
Khloo!
2003-08-15 12:13
2003.09.08
Насколько устойчив Paradox?


14-24626
Romkin
2003-08-21 16:32
2003.09.08
Еще!


1-24503
KIR
2003-08-27 11:38
2003.09.08
Есть ли функция, возвращающая расширение файла?


3-24333
Илайдж
2003-08-18 14:45
2003.09.08
ADO


4-24756
miguel1
2003-07-09 13:24
2003.09.08
Ошибка при вызове функции WriteFile?!