unit uEditorControlBase; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizControlesBase, schControlesClient_Intf, uViewControlBase, uDAInterfaces, pngimage; type IEditorControlBase = interface(IEditorDBItem) ['{A9892225-82DB-41AF-B69D-821E0663B3EF}'] function GetControl: IBizControlBase; procedure SetControl(const Value: IBizControlBase); property Control: IBizControlBase read GetControl write SetControl; end; TfEditorControlBase = class(TfEditorDBItem, IEditorControlBase) actPropiedades: TAction; TBXSeparatorItem14: TTBXSeparatorItem; tbxiPropiedades: TTBXItem; TBXSeparatorItem15: TTBXSeparatorItem; tbxiPropiedades2: TTBXItem; procedure actPropiedadesExecute(Sender: TObject); procedure actGuardarCerrarUpdate(Sender: TObject); procedure actGuardarUpdate(Sender: TObject); procedure actPrevisualizarExecute(Sender: TObject); procedure actImprimirExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); protected FControl : IBizControlBase; FViewControl : IViewControlBase; function GetControl: IBizControlBase; virtual; procedure SetControl(const Value: IBizControlBase); virtual; procedure RefrescarTituloEditor; virtual; function GetModified: Boolean; override; procedure RellenarCabeceraInforme; virtual; public property Control: IBizControlBase read GetControl write SetControl; end; implementation uses uEditorDBBase, uEditorBase; {$R *.dfm} { TfEditorControlBase } function TfEditorControlBase.GetControl: IBizControlBase; begin Result := FControl; end; procedure TfEditorControlBase.SetControl(const Value: IBizControlBase); begin FControl := Value; dsDataTable.DataTable := FControl.DataTable; if Assigned(FViewControl) then FViewControl.Control := FControl; end; procedure TfEditorControlBase.actPropiedadesExecute(Sender: TObject); begin inherited; try FControl.VerPropiedades; finally RefrescarTituloEditor; FViewControl.Modificable := FControl.EsModificable; inherited actGuardarExecute(Sender); end; end; procedure TfEditorControlBase.RefrescarTituloEditor; begin if Assigned(FControl) and (Length(FControl.NOMBRE) > 0) then begin Caption := FControl.NOMBRE; JvNavPanelHeader.Caption := FControl.NOMBRE; end; end; function TfEditorControlBase.GetModified: Boolean; begin Result := inherited GetModified and (Assigned(FControl) and FControl.EsModificable); end; procedure TfEditorControlBase.actGuardarCerrarUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); end; procedure TfEditorControlBase.actGuardarUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := Assigned(FControl) and (FControl.EsModificable); end; procedure TfEditorControlBase.actPrevisualizarExecute(Sender: TObject); begin RellenarCabeceraInforme; inherited; end; procedure TfEditorControlBase.RellenarCabeceraInforme; begin inherited; // end; procedure TfEditorControlBase.actImprimirExecute(Sender: TObject); begin RellenarCabeceraInforme; inherited; end; procedure TfEditorControlBase.actEliminarExecute(Sender: TObject); begin if not FControl.EsModificable then ShowMessage('Este control no se puede eliminar') else inherited end; end.