Тема: EAccessViolation
Показать сообщение отдельно
  #1  
Старый 28.03.2011, 19:35
Аватар для Penguin
Penguin Penguin вне форума
Прохожий
 
Регистрация: 25.03.2011
Сообщения: 3
Репутация: 10
Восклицание EAccessViolation

Доброго времени суток!
Подскажите, пожайлуста, как устроние следующую проблему. У меня программа разбита на несколько независимых unit`ов. В одном из unit`ов (я его буду называть nameunit) прописан динамичный массив vari:array of real, к кторому из всех unit`ов имеется доступ. Ситуация следующая: один из unit`ов увеличивает кол-во эдементов массива -

Код:
var
 te1:cardinal;
begin
 ...
 te1:=length(nameunit.vari);
 setlength(nameunit.vari,te1+1);
 ...
end;

Нашёл, что ошибка возникает в строке setlength(nameunit.vari,te1+1);
Вопрос: как её устранить или как её обойти?
Чем это может быть вызвано?

ЗЫ
Этот кусок кода срабатывает в программе до ошибки 2 раза. На 2 раз возникает ошибка. Другие модули, как и этот unit, изменяют как значения элементов массива, так и кол-во элементов в нём.

Заранее благодарен за помощь!
Ответить с цитированием