unit uEditorElegirPresupuestos; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, uViewPresupuestos, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorElegirPresupuestos, uViewBarraSeleccion, JvgWizardHeader, StdCtrls, uBizPresupuestos, uEditorPresupuestos, JvExComCtrls, JvStatusBar; type TfEditorElegirPresupuestos = class(TfEditorPresupuestos, IEditorElegirPresupuestos) frViewBarraSeleccion1: TfrViewBarraSeleccion; JvgWizardHeader1: TJvgWizardHeader; procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); procedure FormShow(Sender: TObject); protected procedure SetMultiSelect (AValue : Boolean); function GetMultiSelect : Boolean; function GetPresupuestosSeleccionados: IBizPresupuesto; procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; public property Mensaje : String read GetMensaje write SetMensaje; property PresupuestosSeleccionados: IBizPresupuesto read GetPresupuestosSeleccionados; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; end; implementation uses uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uGridUtils, uEditorBase; {$R *.dfm} { TfEditorElegirPresupuestos } procedure TfEditorElegirPresupuestos.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; frViewPresupuestos1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; end; procedure TfEditorElegirPresupuestos.frViewBarraSeleccion1actCancelarExecute( Sender: TObject); begin inherited; Close; end; procedure TfEditorElegirPresupuestos.frViewBarraSeleccion1actSeleccionarExecute( Sender: TObject); begin inherited; ModalResult := mrOk; end; procedure TfEditorElegirPresupuestos.frViewBarraSeleccion1actSeleccionarUpdate( Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) end; function TfEditorElegirPresupuestos.GetPresupuestosSeleccionados: IBizPresupuesto; begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, Presupuestos.SelectedRecords.SelectedRecordsObj); // En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid Result := Controller.ExtraerSeleccionados(Presupuestos); end; function TfEditorElegirPresupuestos.GetMensaje: String; begin Result := JvgWizardHeader1.Comments.Text; end; function TfEditorElegirPresupuestos.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; procedure TfEditorElegirPresupuestos.SetMensaje(const AValue: String); begin JvgWizardHeader1.Comments.CommaText := AValue; end; procedure TfEditorElegirPresupuestos.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; procedure TfEditorElegirPresupuestos.SetViewGrid(const Value: IViewGridBase); begin inherited; ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; end; end.