Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-06-2007
mauqu mauqu is offline
Miembro
 
Registrado: may 2007
Posts: 28
Poder: 0
mauqu Va por buen camino
variable inexistente

Estimados, muchas gracias por la respuesta a mi anterior pregunta, ahora tengo una nueva, algunas veces cuando creo variables locales en un procedimiento o función y le asigno un valor y por último pongo un punto de interrupción en esta asignación, el punto de interrupción se pone con una cruz y el flujo nunca pasa por esa asignación, por que ???

Código Delphi [-]
procedure unProcedimiento;
var
  i:integer;
  s:char; //esta variable no la toma en cuenta el flujo
  l:string;
begin
  i:=0; //por acá pasa bién
  s:=char(66); //por acá no pasa
  l:='OTRA VARIABLE' // por acá pasa bíen
end;

gracias.
Responder Con Cita
  #2  
Antiguo 12-06-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En este caso el compilador "no se para" porque en realidad no haces uso de ninguna variable luego de declararlas. O sea, el compilador dice, "subrimo las instrucciones de declaración de estas variables, puesto que no se utilizan".

Código Delphi [-]
procedure unProcedimiento;
var
  i:integer;
  s:char; //esta variable no la toma en cuenta el flujo
  l:string;
begin
  i:=0; //por acá pasa bién
  s:=char(66); //por acá no pasa
  l:='OTRA VARIABLE' // por acá pasa bíen

  ShowMessage(s);
end;

Prueba ahora verás como "se para".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 12-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
A lo que se refiere Dec es que el compilador de Delphi hace optimización de código, esto es, con variables que solo se inicializan y luego no las vuelves a usar, el compilador las elimina del ejecutable para ahorro de memoria, lo que sucede en tu caso.


Saludos...
Responder Con Cita
  #4  
Antiguo 12-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Pero si quieres "forzar" a que pase por esas variables, colócalas como globales y no como locales. Digo, si es cosa de aferrase

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 12-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
También puede anular la optimización en Project|Options, pestaña Compiler.

// Saludos
Responder Con Cita
  #6  
Antiguo 12-06-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por egostar
Pero si quieres "forzar" a que pase por esas variables, colócalas como globales y no como locales. Digo, si es cosa de aferrase
¿Y por qué "pasará" por las variables globales (pero que no se usan) y no por las variables locales? ¿Alguien sabe?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 12-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Supongo que porque el compilador no ve a distancia y no puede determinar si tal variable se usa o no en otra parte de la aplicación.

// Saludos
Responder Con Cita
  #8  
Antiguo 12-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Yo supongo que las variables locales solo son accesibles en el procedimiento o función en que es declarada por lo que es 'fácil' saber si son usadas o no, pero las variables globales pueden ser accesibles incluso desde cualquier otra unidad, por lo que sería demasiado trabajo para identificar si es usada o no.

Bueno, eso pienso

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



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
variable dentro de una variable molinero1 Varios 3 23-04-2007 12:44:48
Conocer el menor inexistente brandolin Firebird e Interbase 3 25-01-2007 12:27:00
Variable!! jdattoli Conexión con bases de datos 3 10-05-2006 10:10:04
variable con sql Cosgaya Tablas planas 3 15-12-2005 15:49:14
Excepción "Invalid property value" en botón inexistente melanthea C++ Builder 1 07-07-2004 18:12:39


La franja horaria es GMT +2. Ahora son las 16:41:25.


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