Форум «Всё о Паскале» _ Делфи _ Дин. память в объекте
Автор: Baumanec 9.05.2008 4:28
Имеется следующая проблема, уже целый день с ней мучаюсь, имеется объект который в своём конструкторе выделяет память "голове и хвосту" списка, с которым собственно и работает объект ("голова и хвост" описаны в привэйт), но при вызове в событии создания формы вылетает ошибка, что делать? И как с этим бороться и какие фундаментальные причины произошедшего?
Добавлено через 2 мин. Выдаёт ошибку как будто не может выделить память под типизированные указатели....
Автор: volvo 9.05.2008 4:46
Конструктор вызывается не "в стиле Паскаля", случайно?
var obj: TObject; ... Obj.Create(...); // <--- Так делать не надо Obj := TObject.Create(...); // <--- Вот так надо
Если так и делаешь, и все равно ошибка - то показывай код, телепаты в отпуске...
Автор: Baumanec 9.05.2008 18:02
Вот значит объявление класса:
Код
Type tM=array [1..nm] of integer; TStekff = class (TObject) private fz:tm; Fi:integer; public constructor Create; Function pop(out n:integer):boolean; Function push(const n:integer):boolean; Property i:integer Read fi write fi; end;
Вот его конструктор:
Код
constructor TStekff.Create; begin fi:=0; end;
А вот так я его вызываю, хотя сначала да я его вызывал в стиле Паскаля...
Код
procedure TForm2.FormCreate(Sender: TObject); begin s1:=S1.Create; s2:=s2.Create; end;
Но всё равно не пашет, я даже убрал список и тупо использовал статический массив, всё равно выдаёт EAccessViolation, внутри конструктора класса... У меня тупое предположение, может всё дело в моём дэльфи 2006?