Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Классы и обьекты [D6, Win2k]


Страницы:   1 2

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;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо