Leer una celda en un TxBrowse()

Leer una celda en un TxBrowse()

Postby Rafael Clemente » Mon May 01, 2006 12:35 pm

Estoy intentando hacer que al mover el ratón sobre un TxBrowse un campo Say me indique el contenido de las celdas sobre las que pasa el ratón, sin necesidad de clicar en ninguna de ellas. Hasta ahora he llegado aquí:
Code: Select all  Expand view
     @ 1,1 SAY ::oSay .....   // Para ver el contenido de cada celda
     oBrw:bMMoved := {|nR,nC| ::LeerCelda(nR, nC)}   // esto va Ok
......

METHOD LeerCelda(nR,nC)
nRow  := ::oBrw:MouseRowPos(nR)
nCol  := ::oBrw:MouseColPos(nC)
cData := ?????
::oSay:VarPut(STR(nRow)+STR(nCol) +"  "+ cData)
RETURN NIL

La pregunta, obviamente, es ¿cómo hago para obtener cData, o sea, el contenido de cada celda en nRow, nCol sin clicar en ella? ¿Alguien podría echarme una mano? Gracias
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby RenOmaS » Tue May 02, 2006 5:22 pm

cData := Eval( oBrw:aCols[ nCol ]:bStrData, oBrw )
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Postby Rafael Clemente » Tue May 02, 2006 5:38 pm

Pues casi, pero no...

Efectivamente, tu solución lee el valor de la celda CUANDO SE CLICA EN ELLA. Creo que lo que yo necesito es una función más o menos así:

cData := MiFunción(nR, nC), que se llamaría desde oBrw:bMMoved

La idea es que devuelve cData al pasar el ratón sobre la celda, no al clicar.

De todas formas, muchas gracias

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby RenOmaS » Tue May 02, 2006 5:51 pm

revisando la clase twindow . esta evalua bMMoved.. deberias poner un flag para poder trazar si es que efectivamentente llama a este bloque dentro del metodo MouseMove().

Tambien intenta devolver 0 en tu funcion... es decir Return 0

;)
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Postby Rafael Clemente » Tue May 02, 2006 5:59 pm

Si. Mi método se evalúa al mover el ratón. Es solamente esto:
Code: Select all  Expand view
::oBrw:bMMoved := {|y,x| ::LeerCelda(x,y)}

METHOD LeerCelda(x,y) CLASS TWorkLoad
LOCAL nCol  := ::oBrw:MouseColPos(x)
LOCAL nRow  := ::oBrw:MouseRowPos(y)
LOCAL cData
IF nCol > 0
   cData := Eval(::oBrw:aCols[ nCol ]:bStrData, ::oBrw )
   ::oSay:VarPut(STR(nCol,3,0) + STR(nRow,3,0) + "  " + cData)
   ::oSay:Refresh()
ENDIF
RETURN 0

Sé que se evalúa porque al mover el ratón, nCol y nRow se actualizan en pantalla. ¿Es esto a lo que te referías?
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Re: Leer una celda en un TxBrowse()

Postby Marcelo Roggeri » Mon Jun 04, 2012 10:47 pm

Hola Rafael, he visto tu post y me intereso saber si lograste hacer que al pasar con el mouse sobre una celda del txbrowse poder leer el dato de la misma.
Comento que estoy desarrollando un almanaque personalizado y me seria interesante al pasar sobre el dia en cuestion poder iluminar dicha celda o cualquier otro efecto.
Te agradezco cualquier ayuda que puedas darme.
Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Leer una celda en un TxBrowse()

Postby joseluisysturiz » Tue Jun 05, 2012 3:45 am

Revisa este link a ver si te ayuda en algo...saludos... :shock:

viewtopic.php?f=6&t=22975&start=0
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Leer una celda en un TxBrowse()

Postby Marcelo Roggeri » Tue Jun 05, 2012 2:00 pm

Gracias Jose Luis por el post, leo y pruebo, luego comento
Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Leer una celda en un TxBrowse()

Postby Francisco Horta » Tue Jun 05, 2012 2:37 pm

Rafa,
se me ocurre que mandes un click a la posicion de esta forma a ver si te devuelve el valor

#define WM_CLICK 245

METHOD LeerCelda(x,y) CLASS TWorkLoad
LOCAL nCol := ::oBrw:MouseColPos(x)
LOCAL nRow := ::oBrw:MouseRowPos(y)
LOCAL cData
IF nCol > 0
cData := Eval(::oBrw:aCols[ nCol ]:bStrData, ::oBrw )
cData := ::oBrw:PostMsg(WM_CLICK,13,0)
::oSay:VarPut(STR(nCol,3,0) + STR(nRow,3,0) + " " + cData)
::oSay:Refresh()
ENDIF
RETURN 0


saludos
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 19 guests