Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-01-2006
Avatar de eliash
eliash eliash is offline
Miembro
 
Registrado: nov 2005
Ubicación: Galicia, España
Posts: 38
Poder: 0
eliash Va por buen camino
:= ^

Me remito al anterior post, donde preguntaba

Cita:
:= No debería Delphi entonces utilizar dos simbolos?

^ O la antigua sintaxis?
Supongo que todo el mundo lo tomó como una pregunta retórica...
Pero querría saber: Si utilizamos el [operador/asignador/lo-que-sea] := para 1) Darle un valor a una variable, 2)Darle un valor(puntero) a una variable utilizando el nombre del objeto, y no del puntero...
¿no estamos siendo incongruentes?
Responder Con Cita
  #2  
Antiguo 09-01-2006
[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
Lo único que te puedo decir es que le des otra leidita a la Guía de Estilo de los foros.

Por aquello del título de tu mensaje...


Saludos...
Responder Con Cita
  #3  
Antiguo 09-01-2006
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
Y más allá del título y la guía de estilo, al menos yo no tengo ni las más remota idea de lo que estás hablando.

// Saludos
Responder Con Cita
  #4  
Antiguo 09-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por roman
Y más allá del título y la guía de estilo, al menos yo no tengo ni las más remota idea de lo que estás hablando.
Es que es demasiado filosófica

Creo que quiere decir lo siguiente, si tenemos:
Código Delphi [-]
A := B;
Y estamos diciendo que el valor de la variable B se va a asignar al valor de la variable A. Si no es ilógico que:
Código Delphi [-]
A := ^B
Signifique que asigneremos el puntero e la variable B a el valor de la varible A.

Digamos, que se utilice el mismo operador para
Código Delphi [-]
Valor := Valor
que para
Código Delphi [-]
Valor := Puntero

Código Delphi [-]
var
  I: Integer;
  P: PInteger;
begin
  I := P^;

¿Estoy en lo cierto?... de ser así no hay incogruencias!.. simplemente porque al hacer P^ ya haces referencia al valor y no al puntero!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 09-01-2006
Avatar de eliash
eliash eliash is offline
Miembro
 
Registrado: nov 2005
Ubicación: Galicia, España
Posts: 38
Poder: 0
eliash Va por buen camino
Cada vez estoy más confundido; Vamos a ver,

Font1:=^Font; -->Siendo los 2 Tfont; Font1 contiene al Puntero de Font
a:=b; -->siendo los 2 integer: a contiene el valor de b
Font1:=Font; -->//Por que se utiliza ":=" si Font1 no contiene a Font, sino a su puntero?

En Cuanto al título, mil perdones.
Responder Con Cita
  #6  
Antiguo 09-01-2006
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
fer21unmsm Va por buen camino
Cita:
Empezado por eliash
Cada vez estoy más confundido; Vamos a ver,

Font1:=^Font; -->Siendo los 2 Tfont; Font1 contiene al Puntero de Font
a:=b; -->siendo los 2 integer: a contiene el valor de b
Font1:=Font; -->//Por que se utiliza ":=" si Font1 no contiene a Font, sino a su puntero?

En Cuanto al título, mil perdones.
Hola eliash, bueno contestando a tu pregunta

Código Delphi [-]
Font1:=^Font; //esto va a dar error
^ adelante de un tipo de datos o clase, indica que la variable va a ser un puntero de ese tipo. En ese caso Font no es un tipo o clase es un objeto

lo que puedes hacer es:

Código Delphi [-]
Font1: ^TFont; //donde TFont es una clase

Código Delphi [-]
Font1:=Font;  //es válido porque Font1 va a apuntar al contenido de Font, ya que los dos son objetos del mismo tipo.

Saludos.
Responder Con Cita
  #7  
Antiguo 10-01-2006
Avatar de eliash
eliash eliash is offline
Miembro
 
Registrado: nov 2005
Ubicación: Galicia, España
Posts: 38
Poder: 0
eliash Va por buen camino
AY!! Bueno, olvida donde queda el ^ Fallo mío.
Todo este Hilo viene de un comentario anterior de jachguate:
Cita:
Lo que en el viejo pascal era:
Código Delphi [-]
objeto^.miembro := valor;
en delphi se reduce a:
Código Delphi [-]
objeto.miembro := valor;
pero la asignación directa, sigue asignando el puntero y no otra cosa.
Me responde:
Cita:
Esto podes tomarlo como una simplificación al lenguaje, que hace que los neofitos se asusten menos, y quienes estan un poco mas experimentados, tendrán con la aclaración para no olvidarlo. A mi, en lo personal, me es, hasta cierto punto, indiferente.
Pero como puedo aceptar esta sintaxis si formalmente hablando es inexacta? que estamos hablando de un lenguaje de programación carai. Como puede el llamado operador de asignación funcionar de 2 maneras si solo es 1 operador? En lógica o en matemáticas estas cosas tienen que evitarse; en programación no?
En fin, no tengo acciones en Borland, así que en cierta manera este hilo no tiene sentido. Bueno, gracias por las molestias.
De todas formas, si alguien quiere mostrarme su punto de vista, adelante.
Responder Con Cita
  #8  
Antiguo 11-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por eliash
Como puede el llamado operador de asignación funcionar de 2 maneras si solo es 1 operador?
En realidad el operador de asignación funciona de manera consistente dependiendo de ciertas condiciones... es como si estuviera sobrecargado, pues:

a := b;

Copia el valor de la variable b en a.

Por tanto, si a y b son punteros, a apuntará a la misma dirección de memoria donde apunta b al terminar (puesto que el "valor" de un puntero es la dirección de memoria a donde apunta).

En cambio, si a y b son enteros, a tendrá el mismo valor de b.

Cuando el operador de asignación se comporta de manera diferente, es cuando el lado izquierdo no es una variable, sino una propiedad, pero es algo que a mi me parece bien

Saludos.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 11-01-2006
Avatar de eliash
eliash eliash is offline
Miembro
 
Registrado: nov 2005
Ubicación: Galicia, España
Posts: 38
Poder: 0
eliash Va por buen camino
si, entiendo lo que dices; quizá me he rayado un poco.
:) Pero aviso de que tengo la cabeza cuadriculada; en cuanto aprenda un poco más de Delphi volveré al tema de nuevo.
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


La franja horaria es GMT +2. Ahora son las 21:57:36.


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