Podria ser por las puñeteras comillas??.
Suponiendo que producto, tipo_prod y código son strings.
Código Delphi
[-]procedure TModificaciones_productos.Button_modificar(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.add ('UPDATE productos SET producto='+quotedstr(Edit_prod.Text)+',precio='+Edit_precio.Text+',stock='+Edit_stock.Text+',tipo_pr od='+quotedstr(Edit_tipo.Text));
ADOQuery1.SQL.add ('WHERE codigo = '+quotedstr(Edit_codigo.Text));
ADOQuery1.open;
try
except
end;
end;