Page 1 sur 1

BalloonTip

Publié : sam. 25/sept./2004 16:15
par Anonyme2
En utilisant les BalloonTip générés par visual désigner sur des boutons sous XP avec les thèmes activés, j'ai remarqué ceci

on met la souris sur le bouton, le tooltip est ok puis il s'efface mais après, il ne réapparait plus.

Quelqu'un a-t-il travaillé la-dessus et si oui, y-a-t-il une solution avant que je passe 3 heures dans la doc (j'ai pas envie...)

Merci

Publié : sam. 25/sept./2004 18:13
par Le Soldat Inconnu
Avec Jabpe, ce problème n'existe pas. j'avais déjà remarqué ce problème.
faut dire à fred de regarder ça.
ce problème apparait également avec des tooltips crées par un code sur PureArea qui utilise les Api et pas la fonction de PB.

Publié : dim. 26/sept./2004 6:46
par Anonyme2
Le Soldat Inconnu a écrit :Avec Jabpe, ce problème n'existe pas. j'avais déjà remarqué ce problème.
faut dire à fred de regarder ça.
ce problème apparait également avec des tooltips crées par un code sur PureArea qui utilise les Api et pas la fonction de PB.
La le coup du Jabpe je ne comprend pas ; le code généré par l'éditeur est le même et jabpe utilise le compilateur de fred :roll:

Il faut que je cherche dans les paramètres des tooltips, surement une valeur à fixer quelque part...

Publié : dim. 26/sept./2004 8:48
par Lukky
C'est plutôt tooltip que ça s'appelle ?

Mais parle-t-on de la même chose ?

En tout cas voici un code qui marche bien.

Code : Tout sélectionner

;-PureVision Global Variables and Constants
#PB_Flat                =$8000
#PB_Image_BorderRaised  =$1

Global BubbleTipStyle.l
BubbleTipStyle=0

;-Window Constants
Enumeration 1
  #Window_Form1
EndEnumeration
#WindowIndex=#PB_Compiler_EnumerationValue

;-Gadget Constants
Enumeration 1
  ;Window_Form1
  #Gadget_Form1_Button2

EndEnumeration
#GadgetIndex=#PB_Compiler_EnumerationValue

Procedure.l Window_Form1()
  If OpenWindow(#Window_Form1,464,245,400,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible,"Work Form1")
    If CreateGadgetList(WindowID(#Window_Form1))
      ButtonGadget(#Gadget_Form1_Button2,165,85,60,20,"Button2")
        GadgetToolTip(#Gadget_Form1_Button2,"Salut ami figmirèsin")
      HideWindow(#Window_Form1,0)
      ProcedureReturn WindowID()
    EndIf
  EndIf
EndProcedure

;-Main Loop
If Window_Form1()

  quitForm1=0
  Repeat
    EventID=WaitWindowEvent()
    Select EventID
      Case #PB_Event_CloseWindow
        If EventWindowID()=#Window_Form1
          quitForm1=1
        EndIf


      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case #Gadget_Form1_Button2
        EndSelect

    EndSelect
  Until quitForm1
  CloseWindow(#Window_Form1)
EndIf
End
Ca marche impec theme activé ou pas.

JL

Publié : dim. 26/sept./2004 8:50
par Jacobus
Salut,
Juste pour info
J'ai eu le même problème (toujours pas résolu) lors de l'utilisation d'un thread dans l'application. Quand le thread est inactif les tooltips fonctionnent et quand il est actif, plus de tooltips, alors que les boutons et fonctions de l'appli restent disponibles.
Est-ce qu'il n'y aurait pas une question de priorité en cause ? :roll:

Publié : dim. 26/sept./2004 10:53
par Anonyme2
J'ai XP (pack 2 installé) et j'ai exactement le même problème qu'avec un tooltip en forme de ballon. Ca s'affiche puis si on ne bouge pas la souris le tooltip disparait après un petit délai puis plus moyen de le faire réapparaître.

Sans les thèmes activés, avec ton code, j'ai pas de tooltip sur le bouton.

Publié : dim. 26/sept./2004 11:31
par Lukky
Quand tu dis 'Sans les thèmes activés j'ai pas les tootip' tu parles de quoi ?

La coche 'Activer le support des thèmes XP' dans pure basic ou autre chose ?

Si c'est cette coche la moi ça marche activé ou pas et autant de fois que je veux.

C'est bizarre ton truc, t'as essayé dans d'autres softs avec tooltips ?

JL

Publié : dim. 26/sept./2004 11:52
par Anonyme2
Lukky a écrit :Quand tu dis 'Sans les thèmes activés j'ai pas les tootip' tu parles de quoi ?

La coche 'Activer le support des thèmes XP' dans pure basic ou autre chose ?
Oui, je coche ou non dans les options de compilations la case activer les thèmes XP

Lukky a écrit :Si c'est cette coche la moi ça marche activé ou pas et autant de fois que je veux.

C'est bizarre ton truc, t'as essayé dans d'autres softs avec tooltips ?

JL
Oui, ça marche chez toi et pas chez moi...

Pas grave

le code des tooltip ballon que j'utilise est celui de visual désigner, le voici

Code : Tout sélectionner

Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
  ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowID),0,GetModuleHandle_(0),0)
  SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
  SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
  SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
  Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
  Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
  Balloon\hWnd=GadgetID(Gadget)
  Balloon\uId=GadgetID(Gadget)
  Balloon\lpszText=@Text$
  SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
  If Title$ > ""
    SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
  EndIf
EndProcedure
Les ballontooltip sont plus jolis que les rectangulaires.
Bon, je vais regarder la doc, mais je pense que le problème vient des thèmes XP.

Publié : dim. 26/sept./2004 13:10
par Le Soldat Inconnu
le problème vient des thèmes XP
c'est que je pense aussi (vu qu'entre l'éditeur de PB et jaPBe, c'est la seule différence)

Publié : dim. 26/sept./2004 17:31
par Lukky
Peut-être mais je ne m'expique pas pourquoi mon code marche à 100% avec ou sans thèmes et pas chez Denis ??

JL

Publié : dim. 26/sept./2004 17:39
par Chris
Moi, j'ai un message du débugger :
#Window Object not initialised.
Et sans le débugger, gros plantage :?

Publié : dim. 26/sept./2004 18:48
par Le Soldat Inconnu
j'ai exactement le même problème (à condition de compiler sous l'éditeur de PB)

Publié : dim. 26/sept./2004 19:44
par Chris
J'ai trouvé un début de réponse sur le forum anglais, en ce qui concerne le plantage de la procédure BalloonTip de VisualDesigner.

Ilf faut remplacer la ligne:

Code : Tout sélectionner

ToolTip = CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowID),0,GetModuleHandle_(0),0)
par:

Code : Tout sélectionner

ToolTip = CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID,0,GetModuleHandle_(0),0)
Pour le problème de Denis, rien pour le moment.

J'ai le même comportement, c'est à dire que si le tooltip disparait quand la souris est dessus, il ne réapparait.
Par contre, c'est pareil sur d'autres programmes qui ne sont pas faits avec Pure.