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

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

если использовать setlength призакрытии вылетает ошибка. [D5]


Tundra ©   (2002-12-12 09:30:00) 

Такой глюк - если при открытии главной формы приложения использовать setlength, то потом при ее закрытии и соот-но выходе из приложения вылетает ошибка.
На обычном (не динамическом) массиве такого нет.
Кто знает в чем дело? Спасибо.


KSergey   (2002-12-12 11:35:00) [1]

Ну неужели надо повторять каждый раз: код в студию!!!! Прям неприлично выражаться хочется. То, о чем вы пишите - не бывает. Во всяком случае если повторять менно и только описанные вами вещи.


Tundra   (2002-12-12 11:33:00) [2]

Да нет - вылеты есть Винда 2000 адвансед сервер, причем вылеть даже если в массив ничего не писать, а просто объявить setlength.
Я даже убрал весь код - просто самомк было интересно.
И ошибка происходит именно на закрытии формы.
Да, еще, это у меня основная и единственная форма.


Anatoly Podgoretsky   (2002-12-12 11:02:00) [3]

Проверено, вылетов не замечено


KSergey   (2002-12-12 10:34:00) [4]

Так, похоже память не чистим... Надеемся на Пушкина как обычно?


KSergey   (2002-12-12 10:33:00) [5]

Могу предположить 2 варианта: (с чем сталкивался)
- а память из под динам. массива чистится при выходе? (хотя тут обычно явных ошибок не вылетает)
- идет не корректная работа с этим массивом, скорее - мимо него пишется (более длины, например). Но т.к. все же попадаем в память проги, то винда (особенно 9х) не видит в этом криминала. Ну и ишет соотв. куда-то. Но туда, где пишет - что-то явно лежало, например, хендл какого-то ресурса (да или еще что). После закрытия проги идет попылка этот ресурс освобидить - а его хендл уже вовсе и не его хендл, вот тут и привет наступает... Думаю, где-то тут рыть надо...


Tundra   (2002-12-12 10:30:00) [6]

Ну скажем, в событии формы OnCreate
...
setlength(а,5)
...
если ее потом закрыть, вылезет ошибка
"EInvalidPointer" with message "Invalid Pointer Operation"

Проблема уже в принципе решена - использованием Вариантных переменных вместо массивов и ф-ции VarArrayCreate.

Но интересно же, почему такое происходит.


JohnnyJ   (2002-12-12 10:16:00) [7]

а поподробнее?


Наверх

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