Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
1-7457
VID
2003-06-23 10:13
2003.07.03
Второй Clipboard


14-7693
Карлсон
2003-06-14 14:22
2003.07.03
разводка печатной платы.


14-7675
Солер
2003-06-16 15:46
2003.07.03
Ох уж эти даты :(


3-7326
supersan
2003-06-09 12:38
2003.07.03
Глюк с DBGridEh? Или со мной что-то не то?


3-7364
ppcat
2003-06-11 10:35
2003.07.03
Developer Express Quantum Grid. Как получить значение выделенной?




   Наверх