Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 23-10-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Bueno, hay que concentrarse un poco para entender, y nunca está de mas poner algo de código, pues nos ayuda a analizar si el problema es el que describes o es algo que no has visto...

Por otro lado considero que si tienes un objeto TCliente dentro de TFactura, es redundante tener un IdCliente en tu clase factura... pero bueno, eso depende lo que estes haciendo...

El evento que te indica si un cliente cambió no debe originarse desde tu factura, sino desde el mismo TCliente


Código Delphi [-]
Type
  TOnCambioCliente = procedure(IdCliente: Integer) of Object;

TCliente =Class
Private
  FOnCambioCliente : TOnCambioCliente;
public
  Property OnCambioCliente: TOnCambioCliente read FOnCambioCliente write FOnCambioCliente;
  Procedure CargarCliente;
end;

Procedure TCliente.CargarCliente;
Begin
  //cargar el cliente.... 
  if assigned(FOnCambioCliente) then
     FOnCambioCliente(Self.IdCliente);
end;
y en tu clase factura lo debes capturar...

Código Delphi [-]
TFactura= Class
Private
  FIdCliente: Integer;
  FObjetoCliente: TCliente;
Public
  Constructor Create;
  Property idCliente: Integer read FIdCliente;
  Procedure MyOnCambioCliente(IdCliente: Integer);
end;

Constructor TFactura.Create;
Begin
  inherited;
  FObjetoCliente:= TCliente.Create;
  FObjetoCliente.OnCambioCliente:= MyOnCambioCliente;
end;

Procedure TFactura.MyOnCambioCliente(IdCliente: Integer);
Begin
  FIdCliente := IdCliente;
end;
Ahora, como te decia, no me parece natural que tengas un IDCliente en tu TFactura si ya tienes un TCliente asociado... asi que podrías dar acceso a tu cliente desde la factura:

Código Delphi [-]
LaFactura.Cliente.IdCliente ...

O podrias redefinir la propiedad IdCliente de la factura asi:

Código Delphi [-]
TFactura= Class
Private
  FObjetoCliente: TCliente;
  Function GetIdCliente: Integer ;
  Procedure setIdCliente(Value: Integer);
Public
  Property idCliente: Integer read GetIdCliente write setIdCliente;
end;

Function TFactura.GetIdCliente: Integer ;
Begin
  Result:= FObjetoCliente.IdCliente;
end;

Procedure TFactura.setIdCliente(Value: Integer);
Begin
   FObjetoCliente.CargarCliente(Value);
end;

espero que te haya servido...
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Al crear el formulario ejecuta evento OnShow(), Por qué? El_Raso Varios 4 12-07-2012 15:19:06
Tiempo en un evento cmfab Varios 4 16-12-2010 19:52:02
Asignación de un evento en tiempo de ejecución dec Trucos 0 29-06-2006 23:44:25
Evento que se ejecuta al Pulsar el boton de Minimizar de una Forma AGAG4 Varios 2 09-10-2004 17:31:38
cual es el evento que se ejecuta al mover la barra de seleccion en un dbgrid soyhugo Varios 3 17-02-2004 17:42:52


La franja horaria es GMT +2. Ahora son las 20:00:40.


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