unit uEditorDireccion; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton, cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit, uIEditorDireccionContacto, uDireccionesContactoController, uBizDireccionesContacto, cxCurrencyEdit, uDAInterfaces; type TfEditorDireccion = class(TForm, IEditorEditorDireccion) OKBtn: TButton; CancelBtn: TButton; Bevel1: TBevel; eDireccion: TDBEdit; ePoblacion: TDBEdit; eProvincia: TDBEdit; eCodigoPostal: TDBEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; dsDireccion: TDADataSource; Label5: TLabel; eNombre: TDBEdit; Label6: TLabel; ePersonaContacto: TDBEdit; Label7: TLabel; eTelefono: TDBEdit; eMail: TcxDBHyperLinkEdit; PngSpeedButton3: TPngSpeedButton; Label8: TLabel; Label9: TLabel; eNotas: TDBMemo; Bevel2: TBevel; Label10: TLabel; ePortes: TcxDBCurrencyEdit; Label11: TLabel; eMovil: TDBEdit; Label12: TLabel; eFax: TDBEdit; Label13: TLabel; eNifCif: TDBEdit; procedure PngSpeedButton3Click(Sender: TObject); procedure eMailPropertiesEditValueChanged(Sender: TObject); procedure eMailPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); protected FController : IDireccionesContactoController; FDireccion: IBizDireccionesContacto; function GetController : IDireccionesContactoController; procedure SetController (const Value : IDireccionesContactoController); function GetDireccion: IBizDireccionesContacto; procedure SetDireccion(const Value: IBizDireccionesContacto); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property Controller : IDireccionesContactoController read GetController write SetController; property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion; end; implementation uses Variants; {$R *.dfm} type THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit); { TfEditorDireccion } constructor TfEditorDireccion.Create(AOwner: TComponent); begin inherited; FController := NIL; end; destructor TfEditorDireccion.Destroy; begin FController := NIL; inherited; end; procedure TfEditorDireccion.eMailPropertiesEditValueChanged(Sender: TObject); begin if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then (Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); end; procedure TfEditorDireccion.eMailPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if not VarIsNull(DisplayValue) then DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []); end; function TfEditorDireccion.GetController: IDireccionesContactoController; begin Result := FController; end; function TfEditorDireccion.GetDireccion: IBizDireccionesContacto; begin Result := FDireccion; end; procedure TfEditorDireccion.PngSpeedButton3Click(Sender: TObject); begin THackcxDBHyperLinkEdit(eMail).DoStart; end; procedure TfEditorDireccion.SetController( const Value: IDireccionesContactoController); begin FController := Value; end; procedure TfEditorDireccion.SetDireccion(const Value: IBizDireccionesContacto); begin FDireccion := Value; if Assigned(FDireccion) then dsDireccion.DataTable := FDireccion.DataTable else dsDireccion.DataTable := NIL; end; end.