![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Классы и обьекты [D6, Win2k]
OlegL © (2002-12-04 11:23:00)Help me please! Подскажите пожайлуста где я допустил ошибку
type
PList=^AList;
AList=record
x1:integer;
y1:integer;
end;
TArcas=class
private
pl_cut:TList;
rec:PList;
h,w:integer;
public
height,width:integer;
constructor create(bit:TBitmap);
procedure move;
destructor destroy;override;
end;
...
constructor TArcas.create(bit:TBitmap);
var j,i:integer;
begin
pl_cut:=TList.Create; Тут даёт ошибку "Acces violation at adress...."
h:=round(bit.Height/8);
w:=round(bit.Width/5);
for i:=0 to round(bit.Height/h)-1 do
for j:=0 to round(bit.Width/w)-1 do
begin
new(rec);
rec^.x1:=i*height;
rec^.y1:=j*width;
pl_cut.Add(rec);
end;
Dispose(rec);
end;
Конструктор я вызывыю в другом юните (если это важно)
VaS (2002-12-04 11:58:00) [21]inherited Create не нужно.
В остальном Skier прав.
OlegL (2002-12-04 11:46:00) [22]Спасибо
Skier (2002-12-04 11:32:00) [23]>OlegL
И со сладкой парочкой new(rec); - Dispose(rec);
у тебя не всё в порядке...
for j:=0 to round(bit.Width/w)-1 do
begin
new(rec);
rec^.x1:=i*height;
rec^.y1:=j*width;
pl_cut.Add(rec);
end;
Dispose(rec); //зачем ?
Освобождай записи в pl_cut через него же : в цикле...
Skier (2002-12-04 11:28:00) [24]>OlegL
constructor TArcas.create(bit:TBitmap);
var j,i:integer;
begin
inherited Create;
//...........
end;