Ver Mensaje Individual
  #1  
Antiguo 27-08-2005
Arturo Arturo is offline
Miembro
 
Registrado: sep 2004
Posts: 91
Reputación: 20
Arturo Va por buen camino
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.
Responder Con Cita