Вниз
Скачать: CL | DM;

Динамический массив как поле класса   Найти похожие ветки 

← →
Ornelius ©   (2007-04-28 00:43) [0]

у меня возникла проблема при инициализации динамичекого массива (поля класса) процедурой SetLength в конструкторе этого класса. Возникает ошибка распределени я памяти.
Вот мой код:
Type
TModel = class
 private
   Glass: array of real;
 public
   constructor Create(n:Integer);
end;
var model:TModel;
//=====================
implementation
constructor TModel.Create(n: Integer);
begin
 SetLength(Self.Glass, n);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 model.Create(4);  //<-вот здесь воникает ошибка.
//дело в том, что в этом месте указатель на экземпляр класса
//почему-то null. Те переменная model почему-то null.
//Видимо, проблема в этом
end;

ЗЫ: самое интересное: когда я не использовал встроенные динамические массивы, а работал напрямую с динамической памятью(процедуры типа GetMem) тоже возникла очень нетривиальная ошибка(как-то неправильно происходило присвоение по указателю). Мне сказали: "Пользуйся встроенными средствами для работы с динамической памятью"... И вот результат))


← →
Alx2 ©   (2007-04-28 01:09) [1]

> model.Create(4);  //<-вот здесь воникает ошибка.

model := TModel .Create(4);


← →
Servelat ©   (2007-04-28 01:10) [2]

Идти читать умные книги.

Экземпляры объектов создают так:
 ObjInstance := TObjClass.Create();


← →
Германн ©   (2007-04-28 01:13) [3]


>  model.Create(4);  //<-вот здесь воникает ошибка.
> //дело в том, что в этом месте указатель на экземпляр класса
> //почему-то null. Те переменная model почему-то null.
> //Видимо, проблема в этом

А чему ты так удивляешься? Не понимаешь разницы между вызовом TModel.Create  и model.Create? Книжки читай. Хэлп тоже поможет. Только "динамические массивы" тут уж точно не виноваты.


← →
Ornelius ©   (2007-04-28 01:14) [4]

Спасибо. Туплю. Наверное, нужно не 100, а 300 раз наступить на одни и те же грабли, чтобы понять, что больше так делать не нужно))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.042 c
15-1176825088
Jin_beginer
2007-04-17 19:51
2007.05.20
Сортировка в DBGrid


2-1177690564
defiler
2007-04-27 20:16
2007.05.20
Что-то с типами наверное...


2-1178264809
newbie2
2007-05-04 11:46
2007.05.20
string в variant, как?


2-1178199525
RomanLN
2007-05-03 17:38
2007.05.20
Как убрать кнопки закрыть и развернуть у формы


15-1177344906
vasIZmax
2007-04-23 20:15
2007.05.20
Паттерны проектирования




   Наверх