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 05-04-2010
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Más D2010

Por favor observen esta porción de código:

Código:
const
    Palabra: string[20] = '';
begin
  if Key = 32 then
    Palabra := '';
  else
    if Key in LetrasPermitidas then
      Palabra := Palabra+Chr(Key)
    else
      Palabra := '';

  ...

  Key := 0;
end;
En D7 funciona sin problemas. En D2010 me genera este mensaje al compilar:

[DCC Error] Unit5.pas(96): E2064 Left side cannot be assigned to
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #2  
Antiguo 05-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo raro es que funcione en delphi 7.
Si lo declaras como constante no debería permitir modificarlo, para hacerlo debería ser una variable.
Responder Con Cita
  #3  
Antiguo 05-04-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Creo que en las opciones de compilación había una opción que permitía asignar valores a las constantes, esto es, que en realidad no hubiera diferencias entre CONST y VAR. Seguramente lo tienes activado en Delphi 7 y desactivado en Delphi 2010.

De todas formas, nunca he entendido por qué existe esa opción. Si necesitas asignar un valor, ¿por qué usar CONST?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 05-04-2010
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Thumbs up

Sí, la verdad es que se me había olvidado marcar la opción. De hecho se debe un poco a que ahora la presentación de las opciones del compilador es diferente en D2010. La opción se llama Assignable Typed Constants.

Por otra parte,

Cita:
Empezado por Ñuño Martínez Ver Mensaje
Si necesitas asignar un valor, ¿por qué usar CONST?
Claro, las cosas existen por algo. En el fragmento de código se puede ver lo que sucede. Es en realidad un constante para el ámbito global, es decir, que cuando el procedimiento o la función termina de ejecutarse de ninguna manera se libera la memoria utilizada por la costante ni se altera su contenido. Cuando vuelves a llamar al procedimiento o a la función la constante ha conservado su valor, pero por alguna razón queremos actualizarlo. Es como si se tuviera una variable global pero de acceso local, es decir de acceso sólo desde la función o el procedimiento que la contiene.

Muchas gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #5  
Antiguo 06-04-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pues en ese caso, mlara, veo más práctico lo siguiente.
Código Delphi [-]
UNIT EjemploVariableConstante;

INTERFACE

   FUNCTION Constante: INTEGER;

IMPLEMENTATION

VAR
   VariableConstante: INTEGER;

   FUNCTION Constante: INTEGER;
   BEGIN
      RESULT := VariableConstante;
   END;

END.
Cuestión de gustos, supogo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #6  
Antiguo 06-04-2010
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pero es accesible desde todas las funciones de la parte implementación, y "no hay necesidad de ello", porque sólo se va a usar en una función.

Desde otro punto de vista, mejora la legibilidad del código. Cuando ves una variable de implementación, lo primero que piensas es "a saber donde se utiliza".
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 10-04-2010
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Thumbs up

Si, la verdad yo prefiero usar const . No es siempre, es un caso particular, y la constante sólo la necesito en un procedimiento.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #8  
Antiguo 10-04-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
a mi luego eso me pasa,,, con delphi 7, 2006, 2007,
cuando estoy modificando un programa
y lo compilo me da ese error

casi siempre se resuelve, borrando las dcu, de los archivos que modifique,
y el compilador no reconstruyo solo trato de enlazar-
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
En D2010, mensaje de error... mlara Varios 7 05-04-2010 01:15:40
Apariencia de interfaces en D2010 mlara Varios 1 04-04-2010 23:58:21
dll dbexpress d2010 pborges36 Conexión con bases de datos 2 12-01-2010 16:26:53
Activación D2010 mlara Varios 6 08-01-2010 16:53:38


La franja horaria es GMT +2. Ahora son las 23:06:06.


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