Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.02.2011, 15:25
Biimix Biimix вне форума
Прохожий
 
Регистрация: 23.02.2011
Сообщения: 4
Репутация: 10
Лампочка EAccessViolation на разных компах

Всем день добрый, имеется приложение на delphi7, база данных access, комп с win7, на котором всё это дело писалось, и собственно клиент под winxp, где это чудо должно работать, без возможности установки delphi и как следствие отлова возникающих ошибок.
А проблема в следующем, при запуске программы на первом компе всё проходит идеально, но при запуске на рабочем клиенте при закрытии mainform вылезает EAccessViolation всегда с разным адресом ячейки памяти. А без delphi не знаю как на нём отловить ошибку. Где могут быть грабли?
Ответить с цитированием
  #2  
Старый 23.02.2011, 16:48
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Проверяй исходный код, который выполняется при закрытии. Эта ошибка вылетает, когда идет обращение к несуществующему объекту в памяти.

Я иногда проверяю так:

Код:
if MyObject <> nil then
begin
  ...
end; 
Ответить с цитированием
  #3  
Старый 23.02.2011, 22:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

тоже не всегда помогает, т.к. объект может быть уже освобожден, но ссылка не обнулена.

Проверяй на счет динамически создаваемых элементов. Если ты при создании указываешь им Owner'а, то потом их сначала надо отцепить от родителя, а только потом удалять руками. Или пусть овнер сам его удаляет.
Ответить с цитированием
  #4  
Старый 24.02.2011, 11:45
Biimix Biimix вне форума
Прохожий
 
Регистрация: 23.02.2011
Сообщения: 4
Репутация: 10
По умолчанию

Есть только один динамический массив, пробовал его исключить, не помогло. Остальные элементы лежат на форме и в принципе должны автоматом освобождать память после закрытия приложения. При закрытии у меня ничего не выполняется.
Главное не понятно, почему один комп переваривает всё нормально, а второй ругается.
Ответить с цитированием
  #5  
Старый 24.02.2011, 12:06
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

ругается случаем не тот что под семеркой?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 24.02.2011, 13:19
Biimix Biimix вне форума
Прохожий
 
Регистрация: 23.02.2011
Сообщения: 4
Репутация: 10
По умолчанию

Нет, именно под семёркой всё прекрасно, ошибка лезет под хр
Ответить с цитированием
  #7  
Старый 24.02.2011, 13:46
Biimix Biimix вне форума
Прохожий
 
Регистрация: 23.02.2011
Сообщения: 4
Репутация: 10
По умолчанию

Путём долгих экспериментов выяснил, что ошибку давал компонент TXLSReadWriteII, видимо закрывается как-то неправильно. Теперь новая проблема, как правильно закрыть в компоненте эксель воркбук
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:11.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025