FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xBrowse - Tooltip
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
xBrowse - Tooltip
Posted: Wed Dec 18, 2013 02:30 PM
Gente:
Tengo el siguiente browse


El acceso, mediante boton de la columna Banco, abre otro Browse para selecci贸n. Devuelve un array con c贸digo y descripci贸n, el c贸digo se visualiza la lado del boton (como se ve arriba).
Hasta aqu铆 todo correcto.
La pregunta es; si puedo definir un Tooltip, de manera que me muestre la descripci贸n referida a tal codigo
A modo de ejemplo lo hago as铆 (sin exito)
Code (fw): Select all Collapse
 聽 WITH OBJECT oLstChq
聽 聽 聽 ...
聽 聽 聽 :bChange 聽 聽 := {|| oLstChq:MakeTotals(), nPosActual := oLstChq:BookMark, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oLstChq:Banco:cToolTip:= aBanco[1][2], oLstChq:Refresh() }
聽 聽END
聽 聽...
聽 聽WITH OBJECT oLstChq:Banco
聽 聽 聽 :nHeadStrAlign:= :nDataStrAlign:= AL_RIGHT
聽 聽 聽 :cEditPicture := PIC_DIEZCIF0
聽 聽 聽 :nEditType 聽 聽:= EDIT_BUTTON
聽 聽 聽 :AddResource( "bmp_Banco" )
聽 聽 聽 :nBtnBmp 聽 聽 聽:= 1

聽 聽 聽 :bstrData 聽:= {|| aBanco[1][1] }
聽 聽 聽 :bEditBlock:= {|| aBanco:= (h0["Bancos"]:cAlias)->( oCaptu:Capturas( "FBank01", "FBank02", _ARBANCOS, "Bancos", TRUE, FALSE ) ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 saChqCobros[oLstChq:nArrayAt][_IDBanco]:= aBanco[1][1], ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 oLstChq:Refresh() }
聽 聽END

Se puede?
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: xBrowse - Tooltip
Posted: Wed Dec 18, 2013 04:02 PM

Mario, creo que esto puede llegar a darte una idea de como hacerlo.
El FW Samples\TestxBr3.prg tiene una funci贸n ShowFunction() que adapt谩ndola te puede llegar a servir.
No tengo una PC a mano para probar pero fijate.
Un gran brazo amigo.
Miguel

FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - Tooltip
Posted: Wed Dec 18, 2013 10:33 PM

Miguelito querido!
Muchas gracias. Muy bueno el Tip
Lo estoy estudiando a ver si se puede adaptar

Hay que "inventar" una reuni贸n! ;-)

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 12:56 AM
A ver Marito si esto te sirve.
Tomado de ejemplos de FH (XbRowEd.Prg y TestxBr3.prg chusmeando los prg se puede llegar a encontrar cada joyita .... Grande ANTONIO !!!) con algunas modificaciones.
Hay que pulir un poco el c贸digo, (lo hice medio a las disparadas) pero te puede dar una idea.

Code (fw): Select all Collapse
/*
*
* XbRowEd.Prg
*
* Using oBrw:CurrentRow() object for popup edits
*
*/


#include 'fivewin.ch'
#include 'adodef.ch' 聽// in \fwh\include folder
#include 'ord.ch'
#include 'xbrowse.ch'

REQUEST DBFCDX

function Main()

聽 聽local oBrw, oDlg, uData
聽 聽local oFont

聽 聽SET EXCLUSIVE OFF
聽 聽SET DELETED ON
聽 聽SET OPTIMIZE ON

聽 聽SetGetColorFocus()

聽 聽USE CUSTOMER NEW ALIAS CUST SHARED VIA 'DBFCDX'

聽 聽DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
聽 聽DEFINE DIALOG oDlg SIZE 640,460 PIXEL TITLE 'XBrowse Row Edit' ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 FONT oFont

聽 聽@ 10,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg ;
聽 聽 聽 COLUMNS 'First', 'City', 'Age', 'Salary' ;
聽 聽 聽 PICTURES nil, nil, '999', '99,999,999.99' ;
聽 聽 聽 OBJECT uData ;
聽 聽 聽 AUTOSORT CELL LINES NOBORDER ;
聽 聽 聽 ON DBLCLICK RowEdit( oBrw:CurrentRow() )

聽 聽WITH OBJECT oBrw
聽 聽 聽 :nStretchCol 聽:= STRETCHCOL_WIDEST
聽 聽 聽 :CreateFromCode()
聽 聽END

聽 聽@ 210, 10 BUTTON 'Edit' 聽SIZE 40,14 PIXEL OF oDlg ACTION RowEdit( oBrw:CurrentRow() )
聽 聽@ 210,270 BUTTON 'Close' SIZE 40,14 PIXEL OF oDlg ACTION oDlg:End()

聽 聽ACTIVATE DIALOG oDlg CENTERED
聽 聽RELEASE FONT oFont

聽 聽DbCloseAll()

return nil

static function RowEdit( oRow )


聽 聽local nFrom, nUpto
聽 聽Local cText := oRow:First +CRLF+ "__________________________________________"+CRLF+CRLF+ 聽; 
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Todo el text que quieras poner" +CRLF+ "Ya de forma estatica, como robada desde una .DBF" +CRLF+ ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "y .... bla, bla, bla, bla, bla, bla, bla..."
聽 

聽 聽nUpto := At( CRLF + "return", Lower( cText ) )
聽 聽if nUpto > 0
聽 聽 聽 cText := Left( cText, nUpto + 11 )
聽 聽 聽 cText := StrTran( cText, CRLF + " 聽 cFunc := ProcName( 0 )", "" )
聽 聽endif

聽 聽if !Empty( cText )
聽 聽 聽 HTMLPOP( GetActiveWindow(), nil, 0x000E, cText )
聽 聽endif

return nil


Abrazos Marito y que el Abuelo te proteja.
Miguel
FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 02:01 AM
2do. ejemplo un poco mas sofisticado

Code (fw): Select all Collapse
/*
*
* XbRowEd.Prg
*
* Using oBrw:CurrentRow() object for popup edits
*
*/


#include 'fivewin.ch'
#include 'adodef.ch'  // in \fwh\include folder
#include 'ord.ch'
#include 'xbrowse.ch'

REQUEST DBFCDX

function Main()

   local oBrw, oDlg, uData
   local oFont

   SET EXCLUSIVE OFF
   SET DELETED ON
   SET OPTIMIZE ON

   SetGetColorFocus()

   USE CUSTOMER NEW ALIAS CUST SHARED VIA 'DBFCDX'

   DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 640,460 PIXEL TITLE 'XBrowse Row Edit' ;
                      FONT oFont

   @ 10,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg ;
      COLUMNS 'First', 'City', 'Age', 'Salary' ;
      PICTURES nil, nil, '999', '99,999,999.99' ;
      OBJECT uData ;
      AUTOSORT CELL LINES NOBORDER ;
      ON DBLCLICK RowEdit( oBrw:CurrentRow() )

   WITH OBJECT oBrw
      :nStretchCol  := STRETCHCOL_WIDEST
      :CreateFromCode()
   END

   @ 210, 10 BUTTON 'Edit'  SIZE 40,14 PIXEL OF oDlg ACTION RowEdit( oBrw:CurrentRow() )
   @ 210,270 BUTTON 'Close' SIZE 40,14 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

   DbCloseAll()

return nil

static function RowEdit( oRow )


   Local nFrom, nUpto
   Local A
   Local cText := oRow:First +CRLF+ "__________________________________________"+CRLF

      For A:= 1 To Len(oRow:aHeaders)
          cText+=  +CRLF+ oRow:aHeaders[A] +" : " 
          Do Case
             Case ValType(oRow:aValues[A]) == "C" ; cText+= + oRow:aValues[A]
             Case ValType(oRow:aValues[A]) == "N" ; cText+= + Str(oRow:aValues[A])
             Case ValType(oRow:aValues[A]) == "L" ; If(oRow:aValues[A] , cText+= + "CASADO" , cText+= + "CASADO")
             Case ValType(oRow:aValues[A]) == "D" ; cText+= + DtoC(oRow:aValues[A])
          Endcase
          cText+= +CRLF+ "__________________________________________"
      Next A

   nUpto := At( CRLF + "return", Lower( cText ) )
   if nUpto > 0
      cText := Left( cText, nUpto + 11 )
      cText := StrTran( cText, CRLF + "   cFunc := ProcName( 0 )", "" )
   endif

   if !Empty( cText )
      HTMLPOP( GetActiveWindow(), nil, 0x000E, cText )
   endif

return nil


Besos y abrazos !!!
FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 12:25 PM

Miguel;
Muchas gracias por tu tiempo!
Interesante la funci贸n. Ahora bien, en mi pretensi贸n, la idea es que funcione como un Tooltip (el que por lo que observo, no funciona al se帽alar una celda, sino que lo hace sobre la cabecera).
O sea, la idea es que al se帽alar un "celda" que contiene un c贸digo, muestre su descripci贸n...peeeero, sin tener que pulsar sobre un boton externo al browse.
Quiz谩s es un poco loco... pero bue, ocurrencias dada la potencia de xbrowse.

Feliz Navidad y finde!!! (para todos)

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 02:18 PM

Mario,

Yo lo tengo implementado, asi como dices tu, un tooltip que devuelve un texto variable sobre las lineas de cuerpo del browse, pero para la clase TSBrowse(). Mi clase TSBrowse(), literalmente, "da miedo" por la cantidad de cambios y hackings que tiene.
Basicamente, como lo tengo, es interviniendo el metodo :MouseMove() donde se llama al metodo (padre) :ShowToolTip(). Es necesario una Data tipo codeblock por cada objeto oCol que tenga la descripcion a mostrar. El codeblock deberia recibir como parametro el dato de la celda, o incluso el registro actual, para dbfs. Como guinda del pastel, el globo que aparece, muestra como titulo la cabecera de la columna, en negrita y debajo el texto segun el dato que hay debajo del puntero del mouse.

Feliz Navidad para todos ! :D

Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 07:05 PM
MarioG wrote:Miguel;
Muchas gracias por tu tiempo!
Interesante la funci贸n. Ahora bien, en mi pretensi贸n, la idea es que funcione como un Tooltip (el que por lo que observo, no funciona al se帽alar una celda, sino que lo hace sobre la cabecera).
O sea, la idea es que al se帽alar un "celda" que contiene un c贸digo, muestre su descripci贸n...peeeero, sin tener que pulsar sobre un boton externo al browse.
Quiz谩s es un poco loco... pero bue, ocurrencias dada la potencia de xbrowse.

Feliz Navidad y finde!!! (para todos)

Mario no solo te trae la informaci贸n de los Head si no tambi茅n el contenido de los campos, adem谩s no hace falta pulsar el bot贸n, con solo cliclear sobre una celda te trae la informaci贸n del registro.
En el primer ejemplo hace exactamente eso. En cuanto a la informaci贸n que te muestra esa la podes manejar a tu antojo.
La idea en si es que veas la posibilidades que da la funci贸n en si, las posibilidades son enormes.
Otra ventaja que le veo sobre el tooltip, es que permanece el hasta que le realices un nuevo click.

Bueno era solo una idea.
Abrazos.
Miguel
FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 09:18 PM
Hola
Creo que la clase TXBrwColumn de XBrowse tiene una DATA bToolTip
Este es el c贸digo que aparece con los par谩metros que son pasados al codeblock

Code (fw): Select all Collapse
cTxt := eval( oCol:bToolTip, Self, nRow, nCol, nkeyFlags )
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 10:26 PM

hmpaquito. Muchas gracias por tu inter茅s

Miguel:
Que torpe!. No mir茅 la declaraci贸n de DBLCLIC en el XBROWSE

CNavarro:
gracias!. Lo estoy probando

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: xBrowse - Tooltip
Posted: Thu Dec 19, 2013 11:58 PM
Mario, si le agregas a

Code (fw): Select all Collapse
METHOD CreateButtons() CLASS TXBrwColumn

...

@ 0,0 BTNBMP ::oBtnElip OF ::oBrw NOBORDER SIZE 0,0
::oBtnElip:cCaption := IfNil( ::cBtnCaption, "..." )
::oBtnElip:bAction := {|| ::RunBtnAction() }
::oBtnElip:SetFont( If( ValType( ::oDataFont ) == "B", Eval( ::oDataFont, Self ), ::oDataFont ) )
::oBtnElip:SetColor( aColors[ 1 ], aColors[ 2 ] )

::oBtnElip:cTooltip:="prueba"   // agregado

...


Al pasar sobre un boton sale el tooltip "prueba"

A partir de esto supongo podr铆as reformar la clase para que haga lo que pretendes (agregandole datas, etc.)

Saludos

Rolando
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - Tooltip
Posted: Fri Dec 20, 2013 12:36 AM

Rolando, gracias!
Lo uso en botones... pero estoy contra reloj... asi es que quedar谩 como tarea pendiente

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion