Page 1 of 1

Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Thu Sep 23, 2021 6:10 am
by leandro
Buenas tardes para todos,

Cambie la pregunta, por que parece que no tiene respuesta jejejejeje.

Se puede utilizar c5tooltip, sobre las celdas del xbrowse?
Funciona perfecto para los btn, pero intente colocarlo sobre el xbrowse y nada se revienta la aplicación. :(

De antemano gracias

Code: Select all  Expand view


// This sample shows how to easily implement 'tool-tips' in FiveWin!

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------------------//

function Main()

   local oBar, oBtn
   SetResDebug( .T. )

   DEFINE WINDOW oWnd TITLE "ToolTips in FiveWin!"

   DEFINE BUTTONBAR oBar 3D SIZE 33, 33 OF oWnd

   DEFINE BUTTON OF oBar ACTION MsgInfo( "One" )   TOOLTIP "This is a long tooltip"
   DEFINE BUTTON OF oBar ACTION MsgInfo( "Two" )   TOOLTIP "Two"
   DEFINE BUTTON OF oBar ACTION MsgInfo( "Three" ) TOOLTIP "Three"
   DEFINE BUTTON OF oBar ACTION MsgInfo( "Four" )  TOOLTIP "Four"

   @ 10, 8 BUTTON oBtn PROMPT "Where is my tooltip?" SIZE 180, 28 OF oWnd ;
      ACTION MsgInfo( "Oh! Thanks!" )

   // Manipulate directly the cToolTip DATA of other controls than ButtonBitmaps
   oBtn:cToolTip = { || HazC5ToolTip( oBtn ) } //"Here it is!"

   SET MESSAGE OF oWnd ;
     TO "FiveWin: CA-Clipper, xBase && OOPS development power" CENTER

   ACTIVATE WINDOW oWnd

   if File( "checkres.txt" )
      FErase( "checkres.txt" )
   endif
   CheckRes()

return nil

//----------------------------------------------------------------------------//

Function HazC5ToolTip( oCtrl )
Local oTip
//New( nTop, nLeft, nWidth, nHeight, oWnd, lDisenio, nClrPane, nClrPane2, nClrText, nWRadio, nHRadio ) CLASS TC5ToolTip
oTip := TC5ToolTip():New( 0 , 0 , 200, 150, oWnd, , CLR_GRAY, CLR_WHITE, CLR_RED, , )
oTip:lLineHeader       := .T.
oTip:cHeader             := "Header"
oTip:cBmpHeader     := "..\bitmaps\16edit.bmp"

oTip:lLineFoot           := .T.
oTip:cFoot                 := "Footer"
oTip:cBmpFoot         := "..\bitmaps\16object.bmp"


oTip:lSplitHdr           := .T.
oTip:lLeft                  := .T.
oTip:cBmpLeft         := "..\bitmaps\16code.bmp"

oTip:lRightAlignBody  := .T.
oTip:cBody               := "En un lugar de la Mancha de cuyo nombre no quiero acordarme"

oTip:lBtnClose          := .F.      //.T.
oTip:lBorder             := .F.

oCtrl:oToolTip      := oTip
Return oTip

//----------------------------------------------------------------------------//
 
 

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Thu Sep 23, 2021 7:19 pm
by leandro
arriba por cambio de pregunta

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Fri Sep 24, 2021 7:38 am
by hmpaquito
Hola

Para que asi alguien responda ¿ Has pensado en pegar el error que te da y si no da error ver el hb_out.log ?

Salu2

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Sat Sep 25, 2021 2:14 am
by nageswaragunupudi
Do you want a tooltip to appear when mouse hovers over a cell or when the user navigates to a row?

Earlier, you asked how to show a dialog when the user navigates to a row and close dialog when the user leaves the row.
This is the solution for that original question:
Code: Select all  Expand view
#include "fivewin.ch"

REQUEST DBFCDX

function Main()

   local oWnd, oBrw, oFont, oMsgDlg

   USE CUSTOMER NEW VIA "DBFCDX"

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )
   oWnd:nWidth    := 700
   oWnd:nHeight   := 600

   @ 0,0 XBROWSE oBrw SIZE 0,0 OF oWnd ;
      DATASOURCE "CUSTOMER" AUTOCOLS ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bChange := <||
            if oBrw:BookMark % 5 == 0
               oMsgDlg := ShowMsgDlg( oBrw, ;
                  TRIM(FIELD->FIRST) + CRLF + TRIM(FIELD->LAST) )
            else
               if oMsgDlg != nil
                  oMsgDlg:End()
                  oMsgDlg := nil
               endif
            endif
            return nil
            >

      :CreateFromCode()
   END

   oWnd:oClient := oBrw

   ACTIVATE WINDOW oWnd CENTERED
   RELEASE FONT oFont

return nil

function ShowMsgDlg( oBrw, cMsg )

   local oDlg, oFont
   local oCol  := oBrw:SelectedCol()

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-24
   DEFINE DIALOG oDlg STYLE WS_POPUP ;
      COLOR CLR_HRED,CLR_YELLOW ;
      FONT oFont ;
      SIZE 250,100 PIXEL TRUEPIXEL
   RELEASE FONT oFont

   oDlg:bPainted  := { || oDlg:SayText( cMsg ), oDlg:Box(10,10,90,240) }
   oDlg:bInit     := { || oCol:AnchorToCell( oDlg ) }

   ACTIVATE DIALOG oDlg NOMODAL
   oBrw:SetFocus()

return oDlg
 


Image

If I can understand the exact visual effect you want, we can suggest a solution for that whether or not we use c5tooltip

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Mon Sep 27, 2021 1:55 pm
by leandro
:D :D :D
Muchas gracias Mr. Nages

Si, algo así, era lo que había preguntado la primera vez. Lo de C5, lo sugerí por que había encontrado ese código ejemplo y pensé que era mas fácil de adaptar a nuestras necesidades; con ese código que publicaste, creo que podemos avanzar.

Cualquier cosa te estaré molestando.

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Mon Sep 27, 2021 6:48 pm
by EBM
Hola Leandro, para poner un tooltip a cada celda de un xbrowse yo lo hago asi:

oCol:bCellToolTip := { | | "Esto es un tooltip de la celda" }

Espero te sirva

Saludos!

Eduardo Borondón Muñiz

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Mon Sep 27, 2021 7:21 pm
by nageswaragunupudi
EBM wrote:Hola Leandro, para poner un tooltip a cada celda de un xbrowse yo lo hago asi:

oCol:bCellToolTip := { | | "Esto es un tooltip de la celda" }

Espero te sirva

Saludos!

Eduardo Borondón Muñiz

bCellTooltip works when mouse pointer hovers over a cell.
He wanted to display the dialog when user navigates to a row and close when the user leaves the row.

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Sat Oct 02, 2021 3:44 pm
by leandro
Mr. Nages, estoy probando el ejemplo que publicaste, lo que quiero hacer es que muestre el dialogo en todos los registros; no cada 5 filas como se muestra en tu ejemplo, el problema es que en algunas ocasiones no cierra el dialogo, adjunto imagen con error y código.

Image

Code: Select all  Expand view

#include "fivewin.ch"

REQUEST DBFCDX

function Main()

   local oWnd, oBrw, oFont, oMsgDlg

   USE CUSTOMER NEW VIA "DBFCDX"

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )
   oWnd:nWidth    := 700
   oWnd:nHeight   := 600

   @ 0,0 XBROWSE oBrw SIZE 0,0 OF oWnd ;
      DATASOURCE "CUSTOMER" AUTOCOLS ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bChange := <||
           if oMsgDlg != nil
              oMsgDlg:End()
              oMsgDlg := nil
           endif

           oMsgDlg := ShowMsgDlg( oBrw, ;
              TRIM(FIELD->FIRST) + CRLF + TRIM(FIELD->LAST) )
            return nil
            >

      :CreateFromCode()
   END

   oWnd:oClient := oBrw

   ACTIVATE WINDOW oWnd CENTERED
   RELEASE FONT oFont

return nil

function ShowMsgDlg( oBrw, cMsg )

   local oDlg, oFont
   local oCol  := oBrw:SelectedCol()

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-24
   DEFINE DIALOG oDlg STYLE WS_POPUP ;
      COLOR CLR_HRED,CLR_YELLOW ;
      FONT oFont ;
      SIZE 250,100 PIXEL TRUEPIXEL
   RELEASE FONT oFont

   oDlg:bPainted  := { || oDlg:SayText( cMsg ), oDlg:Box(10,10,90,240) }
   oDlg:bInit     := { || oCol:AnchorToCell( oDlg ) }

   ACTIVATE DIALOG oDlg NOMODAL
   oBrw:SetFocus()

return oDlg
 
 

Re: Mostrar tooltip (c5) con formato celda xbrowse

PostPosted: Sat Oct 02, 2021 9:24 pm
by nageswaragunupudi
Code: Select all  Expand view
#include "fivewin.ch"

REQUEST DBFCDX

function Main()

   local oWnd, oBrw, oFont, oMsgDlg

   USE CUSTOMER NEW VIA "DBFCDX"

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )
   oWnd:nWidth    := 700
   oWnd:nHeight   := 600

   @ 0,0 XBROWSE oBrw SIZE 0,0 OF oWnd ;
      DATASOURCE "CUSTOMER" AUTOCOLS ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bChange := <||
            if oMsgDlg == nil
               oMsgDlg := ShowMsgDlg( oBrw )
            else
               oBrw:SelectedCol():AnchorToCell( oMsgDlg )
               oMsgDlg:Refresh()
            endif
            return nil
            >
      :nColSel := 2
      :lColChangeNotify := .t.

      :CreateFromCode()
   END

   oWnd:oClient   := oBrw

   ACTIVATE WINDOW oWnd CENTERED
   RELEASE FONT oFont

return nil


function ShowMsgDlg( oBrw, cMsg )

   local oDlg, oFont
   local oCol  := oBrw:SelectedCol()

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-24
   DEFINE DIALOG oDlg STYLE WS_POPUP ;
      COLOR CLR_HRED,CLR_YELLOW ;
      FONT oFont ;
      SIZE 250,100 PIXEL TRUEPIXEL
   RELEASE FONT oFont

   oDlg:bPainted  := { || oDlg:SayText( ;
      TRIM( ( oBrw:cAlias )->FIRST ) + CRLF + ;
      TRIM( ( oBrw:cAlias )->LAST ) ), ;
      oDlg:Box(10,10,90,240) }
   oDlg:bInit     := { || oCol:AnchorToCell( oDlg ) }

   ACTIVATE DIALOG oDlg NOMODAL
   oBrw:SetFocus()

return oDlg