unit uEditorElegirClientes; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorClientes, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, uViewContactos, uViewClientes, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorElegirClientes, uViewBarraSeleccion, JvgWizardHeader, StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar; type TfEditorElegirClientes = class(TfEditorClientes, IEditorElegirClientes) 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 GetContactosSeleccionados: IBizContacto; procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; public property Mensaje : String read GetMensaje write SetMensaje; property ContactosSeleccionados: IBizContacto read GetContactosSeleccionados; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; end; implementation uses uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uEditorContactos, uGridUtils, uEditorBase, cxControls; {$R *.dfm} { TfEditorElegirClientes } procedure TfEditorElegirClientes.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; frViewClientes1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; end; procedure TfEditorElegirClientes.frViewBarraSeleccion1actCancelarExecute( Sender: TObject); begin inherited; Close; end; procedure TfEditorElegirClientes.frViewBarraSeleccion1actSeleccionarExecute( Sender: TObject); begin inherited; ModalResult := mrOk; end; procedure TfEditorElegirClientes.frViewBarraSeleccion1actSeleccionarUpdate( Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) end; function TfEditorElegirClientes.GetContactosSeleccionados: IBizContacto; begin ShowHourglassCursor; try SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, Contactos.SelectedRecords.SelectedRecordsObj); // En Contactos.SelectedRecords tengo los ID de las filas seleccionadas del grid Result := Controller.ExtraerSeleccionados(Contactos); finally HideHourglassCursor; end; end; function TfEditorElegirClientes.GetMensaje: String; begin Result := JvgWizardHeader1.Comments.Text; end; function TfEditorElegirClientes.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; procedure TfEditorElegirClientes.SetMensaje(const AValue: String); begin JvgWizardHeader1.Comments.Text := AValue; end; procedure TfEditorElegirClientes.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; procedure TfEditorElegirClientes.SetViewGrid(const Value: IViewGridBase); begin inherited; ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; end; end.