Вниз
Скачать: 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
14-7715
UserName
2003-06-15 00:52
2003.07.03
Подскажите плиз


1-7479
Kiril
2003-06-20 22:34
2003.07.03
Insert не вставляет символ 0 , странно...


4-7752
demonyator
2003-05-01 03:15
2003.07.03
Глобальный ActivateKeyboardLayout в Windows XP.


14-7667
Юрий Федоров
2003-06-16 12:11
2003.07.03
Romkin, а фотки со встречи мастаков будут ?


3-7321
vantage10
2003-06-06 13:58
2003.07.03
SQL запрос, бд-MS Access, по времени




   Наверх