Hola a todos:
Como puedo saber si un Objeto Olbx tiene o no en un momento dado el foco
es decir:
tengo un ListBox con ciertos articulos cuando el usuario quiere eliminar uno de la lista debe de accionar el boton "borrar" necesito verificar si realmente selecciono un registro del listbox y esto se observa cuando la linea del registro esta "azul" (cuando pierde el foco el listbox se pone la linea gris) , el caso es que cuando oprime el boton de borrado como debo hacer para saber si el listbox esta seleccionado o tiene el foco ???
espero haberme explicado bien, de antemano gracias por su ayuda
salu2
veracruz, mexico
SetFocus en un oLbx
-
- Posts: 108
- Joined: Sun Oct 09, 2005 6:12 pm
- Location: Mar del Plata - Argentina
- Contact:
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:
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,
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:
Code: Select all
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
Saludos,
-
- Posts: 159
- Joined: Fri Nov 18, 2005 7:34 pm
Hola Daniel
probe con la variable if(oLbx:lFocused) pero sucede lo siguiente
tengo una tecla de acceso rapido de esta forma
SetKey( VK_F3, {|| Borra(oLbx,oSay1,oSay2)})
y en un boton le asigno a la ACTION la misma funcion
ACTION Borra(oLbx,oSay1,oSay2)
el caso es q en la funcion inicio asi para probarlo:
Function Borra(oLbx,oSay1,oSay2)
if(oLbx:lFocused)
msgalert("si borra") //esta el foco en olbx es azul la linea
Else
msgalert("no borra") //no tiene el foco el registro esta marcado en gris
Endif
Return Nil
Cuando lo hago presionando F3 lo hace bien, es decir marca .T. o .F. segun el caso,
pero cuando lo hago Pulsando el Boton (es la misma funcion) marca en _ .F.
Como puedo solucionarlo ???
salu2
VEracruz, Mexico
probe con la variable if(oLbx:lFocused) pero sucede lo siguiente
tengo una tecla de acceso rapido de esta forma
SetKey( VK_F3, {|| Borra(oLbx,oSay1,oSay2)})
y en un boton le asigno a la ACTION la misma funcion
ACTION Borra(oLbx,oSay1,oSay2)
el caso es q en la funcion inicio asi para probarlo:
Function Borra(oLbx,oSay1,oSay2)
if(oLbx:lFocused)
msgalert("si borra") //esta el foco en olbx es azul la linea
Else
msgalert("no borra") //no tiene el foco el registro esta marcado en gris
Endif
Return Nil
Cuando lo hago presionando F3 lo hace bien, es decir marca .T. o .F. segun el caso,
pero cuando lo hago Pulsando el Boton (es la misma funcion) marca en _ .F.
Como puedo solucionarlo ???
salu2
VEracruz, Mexico
-
- Posts: 159
- Joined: Fri Nov 18, 2005 7:34 pm
tal vez me este complicando de mas (es lo mas seguro)
que clase debo de usar para meter registros a una base de datos en forma de listbox, como si fueran articulos de una factura
donde se captura cantidad, clave (con ayuda de busqueda) yo uso listbox y 2 gets uno de cantidad y otro de clave
tal vez x ahi esta el problema, ya q x mas que he buscado el listbox no puedo hacer que haga lo q arriba mencione, ojala me haya explicado lo suficiente
gracias x su tiempo
salu2
veracruz, mexico
que clase debo de usar para meter registros a una base de datos en forma de listbox, como si fueran articulos de una factura
donde se captura cantidad, clave (con ayuda de busqueda) yo uso listbox y 2 gets uno de cantidad y otro de clave
tal vez x ahi esta el problema, ya q x mas que he buscado el listbox no puedo hacer que haga lo q arriba mencione, ojala me haya explicado lo suficiente
gracias x su tiempo
salu2
veracruz, mexico