unit uEditorDBItem; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, JvComponentBase, dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uDAInterfaces; type IEditorDBItem = interface(IEditorDBBase) ['{497AE4CE-D061-4F75-A29A-320F8565FF54}'] end; TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem) pgPaginas: TPageControl; pagGeneral: TTabSheet; imgStatus: TImage; protected procedure EliminarInterno; override; procedure PrevisualizarInterno; override; procedure ImprimirInterno; override; procedure ActualizarEstadoEditor; override; end; implementation uses uEditorBase, uDialogUtils; {$R *.dfm} procedure TfEditorDBItem.ActualizarEstadoEditor; begin inherited; if HayDatos then begin if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then begin StatusBar.Panels[0].Text := ' Se han producido cambios'; imgStatus.Visible := True; end else begin imgStatus.Visible := False; StatusBar.Panels[0].Text := ''; end end; end; procedure TfEditorDBItem.EliminarInterno; begin inherited; actCerrar.Execute; end; procedure TfEditorDBItem.ImprimirInterno; begin inherited; if Modified then begin if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 + '¿Desea guardarlos ahora?') = IDYES) then actGuardar.Execute else ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); end; end; procedure TfEditorDBItem.PrevisualizarInterno; begin inherited; if Modified then begin if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 + '¿Desea guardarlos ahora?') = IDYES) then actGuardar.Execute else ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); end; end; initialization RegisterClass(TfEditorDBItem); finalization UnRegisterClass(TfEditorDBItem); end.