unit uEditorElegirPersonaContacto; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, uIEditorElegirPersonaContacto, uCustomView, uDialogBase, uViewBase, uViewBarraSeleccion, JvExControls, JvComponent, DBCGrids, uBizContactosPersonal, uDAInterfaces, ActnList; type TfEditorElegirPersonaContacto = class(TfDialogBase, IEditorElegirPersonaContacto) dsPersonas: TDADataSource; DBCtrlGrid1: TDBCtrlGrid; ePuesto: TDBText; eTelefono: TDBText; eNombre: TDBText; Label1: TLabel; Label2: TLabel; Label3: TLabel; eMovil: TDBText; Label4: TLabel; eFax: TDBText; Label5: TLabel; eEMail: TDBText; procedure DBCtrlGrid1DblClick(Sender: TObject); procedure ComponenteDblClick(Sender: TObject); procedure actAceptarExecute(Sender: TObject); procedure actCancelarExecute(Sender: TObject); protected FPersonas: IBizContactoPersonal; function GetPersonas: IBizContactoPersonal; procedure SetPersonas(const Value: IBizContactoPersonal); function GetPersonaSeleccionada: IBizContactoPersonal; public property Personas: IBizContactoPersonal read GetPersonas write SetPersonas; property PersonaSeleccionada: IBizContactoPersonal read GetPersonaSeleccionada; end; implementation {$R *.dfm} uses uDireccionesContactoController; { TfEditorDireccionEntrega } procedure TfEditorElegirPersonaContacto.DBCtrlGrid1DblClick(Sender: TObject); begin actAceptar.Execute; end; procedure TfEditorElegirPersonaContacto.actAceptarExecute(Sender: TObject); begin inherited; ModalResult := mrOk; end; procedure TfEditorElegirPersonaContacto.actCancelarExecute(Sender: TObject); begin inherited; ModalResult := mrCancel; end; procedure TfEditorElegirPersonaContacto.ComponenteDblClick(Sender: TObject); begin DBCtrlGrid1DblClick(Sender); end; function TfEditorElegirPersonaContacto.GetPersonas: IBizContactoPersonal; begin Result := FPersonas; end; function TfEditorElegirPersonaContacto.GetPersonaSeleccionada: IBizContactoPersonal; begin // Devuelvo el mismo objeto que recibo pero con el punto de lectura // posicionado en la dirección elegida. Result := FPersonas; end; procedure TfEditorElegirPersonaContacto.SetPersonas(const Value: IBizContactoPersonal); begin FPersonas := Value; if Assigned(FPersonas) then dsPersonas.DataTable := FPersonas.DataTable else dsPersonas.DataTable := NIL; end; end.