Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 27-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Pues, buscando un poco en los Foros me topo con este mensaje del amigo Federico que parece aclarar bastante las cosas respecto de lo que nos ocupa.

En palabras de Federico:

Cita:
Empezado por Federico Firenze
Modificar constantes en tiempo de ejecución es imposible, ya que el compilador reemplaza la constante por el valor, por lo que no existe una "variable" con su contenido.
Pero, en el caso en que nos encontramos:

Cita:
Empezado por Federico Firenze
Pero... si utilizas constantes tipada, si puedes hacerlo ya que estas constantes funcionan como variables, a no ser que la directiva {$J-} este activa.
Por cierto que, la directiva del compilador {$J} ó {$WRITEABLECONST} nos lo termina de aclarar:

Cita:
Empezado por Ayuda de Delphi
The $J directive controls whether typed constants can be modified or not. In the {$J+} state, typed constants can be modified, and are in essence initialized variables. In the {$J-} state, typed constants are truly constant, and any attempt to modify a typed constant causes the compiler to report an error.
Es decir, que esto es posible:

Código Delphi [-]
{$J+}
procedure TForm1.Button1Click(Sender: TObject);
const
  FConstante: string = '¡Hola ';
begin
  ShowMessage( FConstante + ' mundo!');
end;
{$J-}

Y es lo que se hace en el código que tú has expuesto, utilizar una constante a modo de variable previamente inicializada. Probablemente porque:

Cita:
Empezado por Ayuda de Delphi
In early versions of Delphi and Borland Pascal, typed constants were always writeable, corresponding to the {$J+} state. Old source code that uses writeable typed constants must be compiled in the {$J+} state, but for new applications it is recommended that you use initialized variables and compile your code in the {$J-} state.
PD: Puede comprobarse cómo el código fuente que he puesto en mi anterior mensaje no funcionaría con constantes "no tipadas".
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 27-08-2006 a las 13:47:18.
Responder Con Cita
 



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
Se puede pasar un objeto por valor? C# sakuragi .NET 2 18-01-2006 09:26:18
ShowHint Constante .. se puede? ingel Varios 5 14-11-2005 15:36:49
Valor constante en consulta UNION floren SQL 2 28-05-2004 16:44:01
Modificar valor Mastersource Asshole Conexión con bases de datos 1 28-05-2004 00:59:38
IBSQL puede devolver un valor haciendo INSERT? altp SQL 2 04-10-2003 22:09:49


La franja horaria es GMT +2. Ahora son las 13:13:29.


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