Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

Ошибка   Найти похожие ветки 

 
Оля ©   (2003-06-20 18:37) [0]

Код такой:
procedure push(x,y:integer);
begin
new(rec);
rec^.x:=x;
rec^.y:=y;
Mylist.Add(rec);
end;
procedure pop(var x,y:integer);//:Tpoint;
begin
rec:=Mylist.Last;
x:=rec^.x;
y:=rec^.y;
Mylist.Remove(rec);
end;

procedure fill(DC:HDC;x,y:integer;col1,col2:TColor);
var p:TPoint;
begin
Mylist:=TList.Create;
push(x,y);
while Mylist<>nil do
begin
pop(x,y);
//" line(DC,X,Y,X+10,Y+10,CLGREEN);
if GetPixel(DC,x,y)<>col1 then setpixel(DC,x,y,col1);
if (GetPixel(DC,x+1,y)<>col2) and (GetPixel(DC,x+1,y)<>col1) then push(x+1,y);
if (GetPixel(DC,x-1,y)<>col2) and (GetPixel(DC,x-1,y)<>col1) then push(x-1,y);
if (GetPixel(DC,x,y+1)<>col2) and (GetPixel(DC,x,y+1)<>col1) then push(x,y+1);
if (GetPixel(DC,x,y-1)<>col2) and (GetPixel(DC,x,y-1)<>col1) then push(x,y-1);
end;
end;
end.


 
MBo ©   (2003-06-20 18:48) [1]

while Mylist.Count>0 do begin
...
end;
MyList.Free;


 
Юрий Федоров ©   (2003-06-20 18:50) [2]

1.
>> Mylist.Remove(rec);
неплохо освободить память под структуру (если ссылка на нее больше нигде не хранится) :
Dispose(rec);
2.
>> while Mylist<>nil do
Цикл будет бесконечный, поскольку переменной Mylist
nil никто не присваивает


 
Юрий Федоров ©   (2003-06-20 18:53) [3]

В общем, в какой-то момент ни один из IF"ов, приводящих к вызову push не выполняется -> список пуст -> при вызове Mylist.Last поднимается ошибка



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
4-7753
Tenrai
2003-04-29 04:48
2003.07.03
Подключение визуального компонента к программе на WinAPI


3-7361
off
2003-06-11 10:03
2003.07.03
IB два в одном или как по умному слить два файла *.gdb в один?


3-7357
inspirion
2003-06-10 22:19
2003.07.03
Перехват данных


4-7760
Василий Петрович
2003-05-03 11:20
2003.07.03
Бегущая строка


14-7609
degatul
2003-06-18 17:06
2003.07.03
Литература