Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2011, 23:18   #1
Muaxaxa
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 19
По умолчанию Ошибка EAccessViolation.

Спасибо.))

Последний раз редактировалось Muaxaxa; 21.11.2011 в 04:30.
Muaxaxa вне форума Ответить с цитированием
Старый 20.11.2011, 23:44   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Особо не разбирался, но цикл похоже должен быто до n-1, иначе выход за пределы массива
Код:
SetLength(P, n);
....
for i:= 0 to n do
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2011, 00:04   #3
Muaxaxa
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 19
По умолчанию

Тоже не получилось.

И вроде же у меня это есть :
Код:
  n:=(StrToInt(Edit1.Text)-1);
Muaxaxa вне форума Ответить с цитированием
Старый 21.11.2011, 00:14   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

У динамического массива индекс начинается с нуля. И если задали n при создании его, то индекс может быть от 0 до n-1.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2011, 00:29   #5
Muaxaxa
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 19
По умолчанию

Имеете ввиду так? Все ровно ругается.

Код:
Randomize;
  n:=(StrToInt(Edit1.Text));
  i:=0;
  mp:=0;
  for i:= 0 to n-1 do
    begin
      P[mp].x:=Random(image1.Width);
      P[mp].y:=Random(image1.Height);
      mp:=mp+1;
    end;
  P[RadioGroup1.ItemIndex].x:=x;
  P[Radiogroup1.ItemIndex].y:=y;
  Image1.Picture:=nil;{ nulle vai neeksiste}
  BezierCurve();
Muaxaxa вне форума Ответить с цитированием
Старый 21.11.2011, 00:38   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Память под массив P вы выделяете в BezierCurve, а пытаетесь в него что-то написать до обращения к этой процедуре. От этого и пляшите
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2011, 01:01   #7
Muaxaxa
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 19
По умолчанию

Спасибо.))

Последний раз редактировалось Muaxaxa; 21.11.2011 в 04:30.
Muaxaxa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
EAccessViolation Пин Общие вопросы Delphi 2 29.03.2011 10:34
Что за EAccessViolation? Anekdot Общие вопросы Delphi 12 03.08.2009 14:38
Еще раз о EAccessViolation. Andre1723 Общие вопросы Delphi 12 23.02.2009 01:39
Ошибка: "EAccessViolation with message..." Ravnica Помощь студентам 4 04.11.2007 20:46
Ошибка EAccessViolation num8er Общие вопросы Delphi 6 10.10.2007 08:00