FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
evitar precionar dos veces F3 para cerrar una forma....
Hola a todos. Disculpen de nuevo compañeros, pero estoy en un dilema. tengo una forma para ordenes de compras, tiene una tabla maestra y un detalle del cual al presionar F3 en una DBGrid me abre la ventana de Articulos para buscar el producto y volver a presionar F3 me cierre la ventana de Articulos y me devuelve la clave para pasarsela a mi detalle.
Use en el Dbgrid los dos eventos OnKeyDown y OnEditButton para mandar a llamar a la forma de articulos: procedure TfrmOrdCompras.DBGrid1EditButtonClick(Sender: TObject); begin If DBGrid1.selectedfield = BD.IbOrdCompDetORD_DET_ARTICULO then Begin frmMaterial.CrearMostrar; with frmMaterial do begin tag:=1; if frmMaterial.ShowModal= mrOK then BD.IbOrdCompDet.FieldByName('ORD_DET_ARTICULO').AsInteger:= frmMaterial.intAsignArticulo; end; end; end; procedure TfrmOrdCompras.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var i:integer; begin // Aqui va otro codigo para borrar una linea detalle antes de que se grabe if Key = VK_DELETE then ....... if key = VK_F3 then begin frmMaterial.ExecuteProveedor(BD.IbOrdComprasORDEN_PROV.AsString); frmMaterial.CrearMostrar; if frmMaterial.ShowModal= mrOk then begin BD.IbOrdCompDet.Edit; BD.IbOrdCompDet.FieldByName('ORD_DET_ARTICULO').AsInteger:=frmMaterial.intAsignArticulo; end; end; en la forma articulos: frmMaterial esta un procedimiento ( ExecuteProveedor )que me devuelve los productos filtrados en base al proveedor que yo eliga desde mi tabla maestra. y en el evento OnCloseQuery me guarda la clave del articulo para pasarlo a intAsignArticulo. Todo va bien, la cuestion es que debo Presionar dos veces F3 para que me regrese a la Grilla. Les agradeceria si me indicaran por que hace eso...o alguna otra forma de como elegir un articulo y pasarlo a la DBgrid. gracias. |
|
|
|