servicomver:
La variable para saber si un control tiene el foco es oControl:lFocused pero no te va a servir de mucho preguntar por ejemplo if(oBrw:lFocused) en el action de un boton porque en ese momento el browse ya no tiene el foco, lo tiene el boton.
Por lo general es suficiente con hacer:
oBcli:bKeydown := {|nK| if( nK==VK_INSERT,(Fedit(.t.,vFecha),oBCli:Setfocus(),oBCli:Refresh(),oBCli:Gotop()),;
if(nK==VK_DELETE,(E_Detalle(oBcli), oBcli:Refresh()),;
if(nK==VK_F12,IF(MSGYESNO("Confirma los datos de la Factura Fiscal ?","Confirme"),if(Imprime_Comprobante(cMovil,cNomMovil,cAtiende,cNomAtiende,OT:cCodCondVta),;
Limpia(@cAtiende,@cNomAtiende,@cMovil,@cNomMovil,oBcli,oDlg,oNrocomprob),),),))) }
REDEFINE SBUTTON oEl ID 602 ;
RESOURCE "B_BOR","B_BOR";//, "B_REG2","B_REG2","B_REG2" ;
OF oDlg ;
BORDER ;
PROMPT "&Borrar (Delete)" ;
COLORS { |oBtn| If( oBtn:lMouseOver.or.oBtn:lFocused,RGB(215,0,0),CLR_BLACK ) },;
RGB(196, 190, 185);
TOOLTIP OEMTOANSI("Borra el registro");
MESSAGE OEMTOANSI("Borrar Registro");
ACTION (E_Detalle(oBcli), oBcli:Refresh())
Static Function E_Detalle()
If MsgNoYes(oemtoansi("Elimina el Art¡culo ")+ CRLF +LLOSTKTR->MDES+" ?","Atención")
aTot[1]-=1
aTot[2]-=LLOSTKTR->MCAN
aTot[3]-=LLOSTKTR->MCAN*LLOSTKTR->MPREV
LLOSTKTR->(DBDELETE())
LLOSTKTR->(dbgotop())
Endif
return nil
O sea pedir confirmacion porque en el browse siempre estas parado en algun registro de la dbf, por mas que cambie el color de la barra y listo.
Saludos,