Ver Mensaje Individual
  #13  
Antiguo 25-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cita:
Empezado por david.rguez Ver Mensaje
...si sí almacenaba correctamente el valor... ¿por qué no me lo mostraba al inspeccionar la lista durante un punto de interrupción (justo después de haber ejecutado el "Add")?
Ahora veo que maeyanes podría estar en lo correcto cuando dijo:

Cita:
Empezado por maeyanes
A lo mejor el compilador la elimina por que no le encuentra relevancia...
Mientras yo estaba equivocado al decir:
Cita:
Empezado por jachguate
Estoy seguro que el optimizador no eliminaría una línea como esta.
.

Te explico brevemente: Delphi cuenta con un optimizador, que elimina todas aquellas instrucciones irrelevantes al ensamblar tu programa, de manera que no se gasten innecesariamente ciclos del procesador.

Así, si tenemos un código como este:

Código Delphi [-]
var
  I: Integer;
begin
  I:= 10;
end;

Al comiplar, el optimizador se da cuenta que el valor de I no es usado nunca, nos muestra un hint en la consola y elimina la instrucción de asignación, pues el valor no se utilizará en el programa. Esta pieza de delphi es realmente sofisticada, y nunca lo he visto fallar. Así, al hacer algo como:

Código Delphi [-]
var
  L: TList;
begin
  L:= TList.Create;
  try
    L.Add(Objeto1);
    UsarLista(L);
    L.Add(Objeto2);
  finally
    L.Free;
  end;
end;

Es probable que el optimizador también note que luego de añadir el Objeto2, la lista no se use mas, y por tanto, la instrucción no es necesaria. Esto supone que el optimizador conoce la VCL, y por tanto sabe cómo optimizar también su uso, cosa que yo no creía probable.

Habrá que leer un poco acerca de él.

Hasta luego.



pd. Edité tu mensaje para cambiar la etiqueta code por la etiqueta delphi. Veras que queda mucho mejor.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita