Page 1 of 1

¿Se puede poner ctooltip en items de un combobox?

PostPosted: Mon Nov 15, 2021 7:49 pm
by Ramón J.
Hola a todo

Estoy buscando en samples y en el foro algún tema relativo a poner ctooltip en los items de un combobox, pero no he visto nada. ¿Se puede poner?

Gracias

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Tue Nov 16, 2021 11:22 am
by karinha

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Thu Nov 18, 2021 8:01 pm
by Ramón J.
Gracias, João, por tu interés, como siempre dispuesto a ayudar.

He estado viendo los links pero en ninguno de ellos he visto lo que yo quiero, que salga el tooltip cuando se ponga el puntero en el combo desplegado.

Mira, esto es lo que sale:

Image

Esto es lo que yo quiero (es un montaje) cuando se ponga el puntero en la opción y dé la información completa:

Image

El ctooltip sí que sale, pero cuando se ha seleccionado la opción y se ha cerrado el combo.

[url]function Main()

SET _3DLOOK ON
local oDlg, oCbx
local cItem := ""

DEFINE DIALOG oDlg FROM 5, 5 TO 15, 40 TITLE "A Dialog Box with combo"
@ 1, 1 COMBOBOX oCbx VAR cItem ITEMS { "Option 1 of combobox", "Option 2 of combobox", "Option 3 of combobox" } ;
OF oDlg ;
ON CHANGE ( ;
IIF( oCbx:nAt = 1, oCbx:cTooltip := { "Option 1 of combobox","Information", 1, CLR_WHITE, CLR_RED }, NIL ), ;
IIF( oCbx:nAt = 2, oCbx:cTooltip := { "Option 2 of combobox","Information", 1, CLR_WHITE, CLR_RED }, NIL ), ;
IIF( oCbx:nAt = 3, oCbx:cTooltip := { "Option 3 of combobox","Information", 1, CLR_WHITE, CLR_RED }, NIL ) )

@ 3, 4 BUTTON "&Ok" OF oDlg SIZE 40, 12

@ 3, 12 BUTTON "&Cancel" OF oDlg SIZE 40, 12 ;
ACTION oDlg:End()

ACTIVATE DIALOG oDlg

return nil[/url]

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Thu Nov 18, 2021 10:08 pm
by cnavarro
Se me ocurre que llames a los metodos ( DestroyToolTip() y ShowToolTip( nRow, nCol, cToolTip ) ) en el evento ON CHANGE del combo, a ver como se comporta

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Thu Nov 18, 2021 11:52 pm
by karinha
Que tal Ramón? Mucho mejor que un simples tooltip.

https://imgur.com/bul3mxT

Image

Regards, saludos

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Fri Nov 19, 2021 12:53 am
by karinha
Pronto Ramón:

Code: Select all  Expand view

// \SAMPLES\RAMONCMB.PRG - 18/11/2021 - kapiabafwh@gmail.com - Yes sir.

#Include "FiveWin.ch"

#Define CLR_PINK       nRGB( 255, 128, 128 )
#Define CLR_NBLUE      nRGB( 128, 128, 192 )
#define CLR_MSPURPLE   nRGB( 0,   120, 215 )
#define CLR_MSRED      nRGB( 232,  17,  35 )
#define CLR_MSGRAY     nRGB( 229, 229, 229 )

FUNCTION Main()

   LOCAL oDlg, oCbx, cTitle, oSayItem, oFnt, oFont, oSayFive, cTextFive
   LOCAL cText := SPACE(200), oTextBras, cTextBras, aGrad, oOk, oExit

   cTitle    := "Ramon: DropDown ComboBox"
   cTextFive := "Ramon: DropDown ComboBox - FiveWin"
   cTextBras := "FiveWin Brasil The Best .and. Ramon"

   SET _3DLOOK ON

   SetBalloon( .T. ) // Balloon shape required for tooltips

   SkinButtons()

   aGrad := { { 1, CLR_WHITE, CLR_HCYAN  } }

   DEFINE FONT oFont  NAME "Ms Sans Serif"  SIZE 00, -28 BOLD
   DEFINE FONT oFnt   NAME "Ms Sans Serif"  SIZE 00, -16 BOLD

   DEFINE DIALOG oDlg TITLE cTitle FROM 110, 1 TO 450, 600 PIXEL        ;
      GRADIENT aGrad

   oDlg:lHelpIcon := .F.

   @ 10, 10 COMBOBOX oCbx VAR cText STYLE CBS_DROPDOWN                  ;
      SIZE 100, 460 OF oDlg PIXEL HEIGHTGET 20 FONT oFnt                ;
      ITEMS { "Ramon Forum ESP", "FiveWin Brasil", "FiveWin Mundial",   ;
              "Corinthians SP ", "Palmeiras SP  ", "Flamengo Rio   ",   ;
              "Marrocos Afrik ", "Brasil Mi Amor", "Estados Unidos ",   ;
              "Canadian Air   ", "Espanha Bella ", "Argentina Enemy"  } ;
      ON CHANGE( oDlg:SetText( cTitle + " - " + cText ),                ;
                 oSayItem:SetText( cText ) )

   oCbx:cToolTip := { || MyToolTip_Cbx( oCbx:nAt, cText ) }

   @ 10, 120 SAY oSayItem VAR cText      SIZE 150, 20 OF oDlg PIXEL FONT oFont ;
      COLORS CLR_PINK, CLR_WHITE TRANSPARENT

   @ 40, 120 SAY oSayFive VAR cTextFive  SIZE 150, 50 OF oDlg PIXEL FONT oFont ;
      COLORS CLR_MSPURPLE, CLR_WHITE TRANSPARENT

   @ 80, 120 SAY oTextBras VAR cTextBras SIZE 150, 50 OF oDlg PIXEL FONT oFont ;
      COLORS CLR_MSRED, CLR_WHITE TRANSPARENT

   @ 145, 100 BUTTON oOk PROMPT "&Ok" SIZE 50, 14 OF oDlg PIXEL ;
      ACTION( oDlg:End() )

   @ 145, 160 BUTTON oExit PROMPT "&Salida" SIZE 50, 14 OF oDlg PIXEL ;
      ACTION( oDlg:End() ) DEFAULT CANCEL

   SET FONT OF oOk   TO oFnt
   SET FONT OF oExit TO oFnt

   ACTIVATE DIALOG oDlg CENTERED

   oFnt:End()
   oFont:End()

RETURN NIL

FUNCTION MyToolTip_Cbx( nOpt, cText )

   LOCAL cRet

   FWLOG nOpt

   IF .NOT. EMPTY( cText ) // vacio no. YES, SIR!!

      Do Case
      Case nOpt = 1
         MsgWait( cText, "Message1",  2 )
      Case nOpt = 2
         MsgWait( cText, "Message2",  2 )
      Case nOpt = 3
         MsgWait( cText, "Message3",  2 )
      Case nOpt = 4
         MsgWait( cText, "Message4",  2 )
      Case nOpt = 5
         MsgWait( cText, "Message5",  2 )
      Case nOpt = 6
         MsgWait( cText, "Message6",  2 )
      Case nOpt = 7
         MsgWait( cText, "Message7",  2 )
      Case nOpt = 8
         MsgWait( cText, "Message8",  2 )
      Case nOpt = 9
         MsgWait( cText, "Message9",  2 )
      Case nOpt = 10
         MsgWait( cText, "Message10", 2 )
      Case nOpt = 11
         MsgWait( cText, "Message11", 2 )
      Case nOpt = 12
         MsgWait( cText, "Message12", 2 )
      EndCase

   ENDIF

RETURN( cRet )

// FIN / END
 


Regards, saludos.

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Mon Nov 22, 2021 7:03 pm
by Ramón J.
Gracias, João.

Y algo así se podría hacer?

Image

Saludos y gracias.

Re: ¿Se puede poner ctooltip en items de un combobox?

PostPosted: Mon Nov 22, 2021 10:29 pm
by karinha
Hello, no que yo sepa. Porquê no usas una Listbox? Haria el mismo.

Regards, saludos.