Цитата
procedure ToDelete(var first:list; x:integer);
var
temp:list;
extra:list;
found:boolean;
begin
found:=false;
if first<>nil then
if first^.info=x then
begin
found:=true;
temp:=first;
first:=first^.next;
dispose(temp)
end
else
extra:=first;
while not found and (extra^.next<>nil) do
if extra^.next^.info=x then found:=true
else extra:=extra^.next;
if found then
begin
temp:=extra^.next;
extra^.next:=temp^.next;
dispose(temp);
end;
end;
выделила красным выполняемые в проблемном случае действия.
теперь видишь?
(сорри, что не в тегах code)
extra неизвестно чему равно в данном случае, а ты пытаешься с ней работать