Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: 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 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1178185101
Ken9
2007-05-03 13:38
2007.05.20
Получение средствами дельфи html страницы с веб-сервера


15-1176806589
икс-игрик-й
2007-04-17 14:43
2007.05.20
Помогите решить задачки по физике(кто решит отблагодарю)


15-1176757770
ArtemESC
2007-04-17 01:09
2007.05.20
PHP


2-1178187768
Marat
2007-05-03 14:22
2007.05.20
Округлить QRExpr


15-1176264105
SteepeWolf
2007-04-11 08:01
2007.05.20
Контактные линзы