Tooltip celdas xbrowse

Post Reply
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Tooltip celdas xbrowse

Post by leandro »

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

#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 ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Post Reply