Tooltip celdas xbrowse

Tooltip celdas xbrowse

Postby leandro » Mon Apr 06, 2020 7:52 pm

Buenas tardes para todos,

En esta ocasión quiero mostrar un tooltip sobre una celda de un xbrowse (array), buscando en el foro encontré algo similar a lo que deseo hacer, con este código ejemplo, se muestra en el tooltip la información de la celda referencia, pero lo que necesito que se muestre en el tooltip es el valor de la columna descripción.

Code: Select all  Expand view

#include "FiveWin.ch"
#include "xbrowse.ch"

function Test()

local oDlg, oBrw
local aArray := {}
local nI
local hLinea := {=>}
local oCol

hLinea["id"] := 1
hLinea["referencia"] := "REFERENCIA1"
hLinea["descripcion"] := "LA DESCRIPCION DE LA REFERENCIA NUMERO 1"
hLinea["valor"] := 150000
AADD(aArray,hLinea)
hLinea := {=>}

hLinea["id"] := 2
hLinea["referencia"] := "REFERENCIA2"
hLinea["descripcion"] := "LA DESCRIPCION DE LA REFERENCIA NUMERO 2"
hLinea["valor"] := 250000
AADD(aArray,hLinea)
hLinea := {=>}

hLinea["id"] := 3
hLinea["referencia"] := "REFERENCIA3"
hLinea["descripcion"] := "LA DESCRIPCION DE LA REFERENCIA NUMERO 3"
hLinea["valor"] := 350000
AADD(aArray,hLinea)
hLinea := {=>}

DEFINE DIALOG oDlg Title "Test de Botones en xBrowse " size 700,300

oBrw:= txbrowse():new( oDlg )
oBrw:nRowHeight := 25
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK

oCol          = oBrw:AddCol()
oCol:bStrData := {|| if(Len( aArray ) > 0 , aArray[oBrw:nArrayAt]["id"] ,"" ) }
oCol:cHeader  = "id"
oCol:nWidth   = 55
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT   

oCol          = oBrw:AddCol()
oCol:bStrData := {|| if(Len( aArray ) > 0 , aArray[oBrw:nArrayAt]["referencia"] ,"" ) }
oCol:cHeader  = "referencia"
oCol:nWidth   = 150
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT   
oCol:bToolTip := { | oBrw,r,c,f,oMouseCol,nMouseRow| MyColToolTip( oBrw,r,c,f,oMouseCol,nMouseRow ) }
   
oCol          = oBrw:AddCol()
oCol:bStrData := {|| if(Len( aArray ) > 0 , aArray[oBrw:nArrayAt]["valor"] ,"" ) }
oCol:cHeader  = "valor"
oCol:nWidth   = 90
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT   

oBrw:SetArray( aArray )
oBrw:CreateFromCode()

ACTIVATE DIALOG oDlg center;
ON INIT ( oDlg:oClient := oBrw, ;
oDlg:ReSize() )

return nil

Function MyColToolTip( oBrw, r, c, f, oMouseCol, nMouseRow )

   local uBm, uVal
   if nMouseRow != oBrw:nRowSel
      uBm   := oBrw:BookMark
      Eval( oBrw:bSkip, nMouseRow - oBrw:nRowSel )   //here  (variable nMouseRow do not exists)
      uVal  := oMouseCol:Value
      oBrw:BookMark := uBm
   else
      uVal  := oMouseCol:Value
   endif  
   
return cValToChar( uVal )
 


Espero haberme hecho entender, de antemano gracias.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1669
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], jair and 29 guests