Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Skywarp
0 / 0 / 0
Регистрация: 21.02.2016
Сообщений: 2
1

Массив классов, ошибка EAccessViolation

28.05.2013, 02:22. Просмотров 860. Ответов 2
Метки нет (Все метки)

Суть такова. Есть класс, описывающий учебные дисциплины.
Delphi
1
2
3
4
5
6
7
type
  TSubject = class(TObject)
    public
    Name : string;
    ParentSub : TSubject;
    Ttest: string;
  end;
Есть массив, в котором будут храниться объекты этого класса:
Delphi
1
2
3
 var
  Form1: TForm1;
  DysAr : array of TSubject;
И процедура, которая должна добавлять в массив объекты:
Delphi
1
2
3
4
5
6
7
procedure DysArCreate(a:integer);
begin
DysAr[a]:=TSubject.Create();
DysAr[a].Name:='неважно....'+IntTostr(a);
DysAr[a].ParentSub:=DysAr[a-1];
DysAr[a].Ttest:= '..\test\1.txt';
end;
И, собственно, ее применение:
Delphi
1
2
3
4
5
procedure TForm1.FormShow(Sender: TObject);
var i:integer;
begin
for i := 0 to 5 do DysArCreate(i);
end;
При запуске программы вылетает ошибка EAccessViolaton такого типа:
Access violation at address 0040189B in module 'Project1.exe'. Write of address 00000004.
Добавление объекта в массив не через процедуру, а просто кодом тоже не срабатывает, та же ошибка на вот этом участке кода:
Delphi
1
DysAr[1]:=TSubject.Create();
При этом, если просто создавать объекты класса, не через массив - все отличненько работает. Где справедливость? Может кто знает, в чем проблема, и как с ней бороться?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2013, 02:22
Ответы с готовыми решениями:

EAccessViolation ошибка
EAccessViolation ошибка при нажатии на кнопку, в коде при сложении.... procedure...

EAccessViolation ошибка...
Добрый день. Я уже третий месяц пытаюсь сделать проект "датчик движения", но время от времени, в...

Ошибка: EAccessViolation
допустил ошибку, понятия не имею, в чем она заключается....(отмечена в коде) EAccessViolation ...

ошибка EAccessViolation
Задание Создать программу которая будет формировать таблицу чисел, которые будут подчинятся закону...

Ошибка Eaccessviolation
library Data_Units; Uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

2
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
28364 / 18892 / 7439
Регистрация: 22.10.2011
Сообщений: 33,036
Записей в блоге: 6
28.05.2013, 11:44 2
SkyWarp, я надеюсь, SetLength для динамического массива присутствует? Или забыл?
1
Skywarp
0 / 0 / 0
Регистрация: 21.02.2016
Сообщений: 2
28.05.2013, 12:11 3
UI, благодарю, именно в этом и была ошибка.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2013, 12:11

EAccessViolation на многомерный массив
Есть вот такой код: ... var MessGn: array of array of array of real;

Ошибка: class EAccessViolation with message
При запуске выдаёт ошибкуProject Project1.exe raised exception class EAccessViolation with message...

Ошибка: Exception EAccessViolation in module
Добрый день! Люди, помогите, пожалуйста! Ошибка при запуске программы: Exception EAccessViolation...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.