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
  #2  
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
Ah... Es que los registros son medio HDP...

Verás, cuando uno llama a la propiedad izquierdo, Delphi va a llamar al GetHijo ¿Verdad? Bueno, pero GetHijo es una función, y la función devuelve una copia del registro original. Y esa copia es, por defecto, de sólo lectura. Ahí está el problema.

Si uno hace algo así:

Código Delphi [-]

type
  TRec = record
     campo1: string;
     campo2: Boolean;
  end;

  type PRec = ^TRec; // <---------------------------

  type TAlgo = class
    private
      FDatos: array of TRec;
      function GetDato(const Indice: Integer): PRec;
      procedure SetDato(const Indice: Integer; const Valor: PRec);
    public
      property Datos[const Indice: Integer]: PRec read GetDato write SetDato;
    end;

function TAlgo.GetDato(const Indice: Integer): PRec;
begin
  Result:= @FDatos[Indice];
end;

procedure TAlgo.SetDato(const Indice: Integer; const Valor: PRec);
begin
  FDatos[Indice]:= Valor^;
end;

MiObjeto.Datos[3].Campo1:= 'Hola'; // <--- funciona

Esto funciona, pero ¿porqué? Bueno, porque ahora estás devolviendo un puntero al original, y como la dereferencia en los registros (el ^) es automática, pues termina andando sin que tengas que agregar el ^ al hacer la asignación.

¿Se entiende lo que digo? Espero que sí, sino pues... que te ayude otro. Digo, volvé a preguntar y trato de explicarlo mejor.

Saludongos.
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