Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 13-05-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 19
Lord Delfos Va por buen camino
Cita:
Empezado por yapt Ver Mensaje
A que te refieres con la propiedad IZQUIERDO ?
Eh... Quise decir cuando la propiedad es llamada del lado izquierdo de una asignación. Que es cuando se llama al gettter y no al setter (el GetHijo, vamos).

Cita:
Empezado por yapt Ver Mensaje
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  HolaHola : TRecHijo;
begin
  Padre.Hijo[1] := HolaHola;  //<<<<----- Esto de aquí... ???
end;

Porque tambien Padre.Hijo[1] llaman al GetHijo, no ?
A ver, a ver. Según entiendo yo.

Código Delphi [-]
Padre.Hijo[1]:= AlgunRegistro;

Sería:

Código Delphi [-]
Temporal:= Padre.FHijo[1];
Temporal:= AlgunRegistro;
Padre.FHijo[1]:= Temporal;

Ahora:

Código Delphi [-]
Padre.Hijo[1].campo1:= 'Hola';

Sería:
Código Delphi [-]
Temporal:= Padre.FHijo[1];
Temporal2:= Temporal.campo1;
Temporal2:= 'Hola';
Padre.FHijo[1]:= Temporal;

¡Ajá! Pero si asignamos Temporal (no Temporal2) a FHijo[1], entonces perdemos la asignación a campo1. ¿no?

Por eso, el compilador se niega a aceptar hacer tal cosa. En otros lenguajes, como C#, esto está permitido, aunque el valor NO es asignado. Es decir, pasa lo mismo que en el ejemplo de arriba.

Porqué motivo el compilador no hace Padre.FHijo[1].campo1:= Temporal2, te preguntarás. Pues porque la propiedad de clase devuelve un registro, no un string. Es decir, el GetHijo devuelve todo un registro, una copia del original, y sobre esa copia vos querés cambiar el valor. Recordemos que la propiedad trata sobre un registro, así que el SetHijo supone que le vas a pasar todo el registro, no solamente un campo...

En tu ejemplo en el que asignás un registro completo, ahí no hay problemas porque, precisamente, la propiedad trabaja con un registro, así la definiste vos. No sé si se entiende...

O al menos eso es lo que yo entiendo.

Última edición por Lord Delfos fecha: 13-05-2010 a las 21:03:19.
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
Buscar un elemento en un array sin recorrerlo David OOP 3 23-07-2011 16:15:40
Comprobar si existe elemento en el Array Cecil Varios 2 17-02-2008 06:37:25
Actualizar Caption de un elemento de Array of TLabel's gluglu Varios 2 15-06-2007 18:24:16
quitar elemento de un array dinámico elcigarra OOP 2 08-09-2006 23:30:34
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51


La franja horaria es GMT +2. Ahora son las 01:38:46.


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