Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2008
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 20
david.rguez Va por buen camino
Bueno, ya se resolvió.

Puse un ShowMessage con el Text y sí que me lo mostraba ahí (el error posterior es que el Free lo tenía colocado donde no debía), pero me queda una cuestión que no entiendo...

...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")?

Gracias a todos por la ayuda.
Responder Con Cita
  #2  
Antiguo 25-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
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
  #3  
Antiguo 25-01-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Para poder ver lo que tiene un TStringList mediante el Watch, tienes dos formas:

1. Colocar en el Watch Lista.Text o
2. Colocar en el Watch Lista[n], donde n es el índice que quieras ver, así para ver que valor está en la primera posición de la lista haces: Lista[0]

Si colocas el cursor sobre la variable Lista no vas a ver el contenido de la variable, para eso tendrías que tener en código algo como Lista.Text y poner el cursor sobre Text...


Saludos...
Responder Con Cita
  #4  
Antiguo 25-01-2008
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 20
david.rguez Va por buen camino
jachguate, gracias por la información, realmente interesante; aunque no creo que ese sea el problema, pues sigue sin mostrarlo en depuración aunque sí lo graba (habiendo ya colocado correctamente el Free).

Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Para poder ver lo que tiene un TStringList mediante el Watch, tienes dos formas:

1. Colocar en el Watch Lista.Text o
2. Colocar en el Watch Lista[n], donde n es el índice que quieras ver, así para ver que valor está en la primera posición de la lista haces: Lista[0]

Si colocas el cursor sobre la variable Lista no vas a ver el contenido de la variable, para eso tendrías que tener en código algo como Lista.Text y poner el cursor sobre Text...


Saludos...
Pues yo había mirado lo del cursor porque cuando voy a un objeto que no tiene valor como tal (sino que hay que acceder a una de sus propiedades) me sale el tipo y herencia del componente. Por eso, al ver dos paréntesis sin nada dentro en este, asumí que mostraba una lista sin contenido.

Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¡En un mes me caso! ContraVeneno La Taberna 54 23-10-2006 10:15:56
Caso específico sierraja Firebird e Interbase 9 12-01-2006 00:18:54
Caso con DLL. mlara Varios 12 19-08-2005 04:48:20
Caso SuperRaro con Transacciones AGAG4 SQL 2 19-08-2004 16:32:28
Caso real.... jafl1965 Humor 1 04-11-2003 10:36:05


La franja horaria es GMT +2. Ahora son las 05:28:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi