unit uArticulosPedidoClienteController; interface uses uDADataTable, uArticulosController, uBizArticulos, uBizContactos; type IArticulosPedidoClienteController = interface(IArticulosController) ['{D2B703A6-4DB6-4C6E-A4A5-118EE719EC24}'] function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const ACliente: IBizCliente): IBizArticulo; end; TArticulosPedidoClienteController = class(TArticulosController, IArticulosPedidoClienteController) public function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const ACliente: IBizCliente): IBizArticulo; overload; end; implementation { TArticulosPedidoClienteController } uses Controls, cxControls, uIEditorElegirArticulosPedidosCliente, uIEditorElegirArticulos, uDBSelectionListUtils, SysUtils, Classes; function TArticulosPedidoClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const ACliente: IBizCliente): IBizArticulo; var AEditor : IEditorElegirArticulosPedidosCliente; begin Result := NIL; CreateEditor('EditorElegirArticulosPedidoCliente', IEditorElegirArticulosPedidosCliente, AEditor); if Assigned(AEditor) then try AEditor.Controller := Self; AEditor.Articulos := AArticulos; AEditor.MultiSelect := AMultiSelect; AEditor.Mensaje := AMensaje; if IsPositiveResult(AEditor.ShowModal) then Result := AEditor.ArticulosSeleccionados; finally AEditor.Release; AEditor := NIL; end; end; end.