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 | Expand
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,
-
- Posts: 192
- 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 ambos casos .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 ambos casos .F.
Como puedo solucionarlo ???
salu2
VEracruz, Mexico
-
- Posts: 192
- 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