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 07-04-2009
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
Si estamos trabajado con objetos, ¿por qué no hacer algo así?

Código Delphi [-]
type
  TMiObjeto = class
  private

    FPropiedad: TTipoDeDatos;
    procedure SetPropiedad(Valor: TTipoDeDatos);

  public
    Modificado: Boolean;
    property Propiedad: TTipoDeDatos write SetPropiedad;
  end;

implementation

procedure TMibjeto.SetPropiedad(Valor: TTipoDeDatos);
begin
  FPropiedad := Valor;
  Modificado := true;
end;

Claro que hay que poner un método de acceso para cada propiedad (cosa que es bastante común) pero al final, la comprobación es tan sencilla como

Código Delphi [-]
if MiObjeto.Modificado then
  Grabar;

sin tener que comparar campo por campo.

--------------------------------------------------------------------------------------

Cita:
Empezado por delphi.com.ar
que todos los campos de la clase lo tengas almacenados en un record, crear un método que sea "Compare", e internamete utilizar la función CompareMem para comparar los valores de los records.
Pero, ¿esto serviría si tenemos valores string? Es decir, creo que todos los valores que nos interesen para la comparación tendrían queser de longitud fija ¿no?

// Saludos
Responder Con Cita
  #2  
Antiguo 07-04-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.298
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Si estamos trabajado con objetos, ¿por qué no hacer algo así
El problema que le veo a esto Román, es que sólo podemos comparar u objeto consigo mismo (por decirlo así), pero no nos serviría para comparar dos objetos distintos físicamente.

En el caso de Cliente y ClienteViejo, son dos objetos de la clase cliente distintos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 07-04-2009
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
Tienes razón Neftalí; es que me parece que en el fondo no me cuadra lo de usar dos objetos para lo mismo y subconcientemente lo omití Pero claro que bajo esas condiciones no aplica lo que digo.

// Saludos
Responder Con Cita
  #4  
Antiguo 07-04-2009
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.933
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Pero, ¿esto serviría si tenemos valores string? Es decir, creo que todos los valores que nos interesen para la comparación tendrían queser de longitud fija ¿no?
Así es, creí haberlo aclarado .

Te dejo algo para marearse un ratito, cositas que hace el compilador:
Código Delphi [-]
type
  TData = record
    Field1: string;
    Field2: string
  end;
var
  D1, D2: TData;
begin
  D1.Field1 := 'Hola Mundo!';
  D1.Field2 := '123'; {Probar cambiando los valores, o tomandolos de un edit}

  D2.Field1 := 'Hola Mundo!';
  D2.Field2 := '123';

  Caption := IfThen(CompareMem(@D1, @D2, SizeOf(TData)), '=', '<>');
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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
Como instanciar objetos de los cuales solo se conoce su clase ancestro AzidRain OOP 7 11-07-2008 02:58:17
ayuda handle de multiples ventanas de la misma clase octalh Varios 7 23-04-2008 07:44:16
Recorrer todos los objetos creados de una clase propia mierda OOP 1 25-10-2007 19:52:10
Crear una clase y asignar objetos como propiedades leanfreue OOP 4 13-04-2007 00:08:33
Obtener la clase de objetos Feñiz OOP 7 08-05-2003 20:21:55


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


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