Page 1 sur 1
[R] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 17:24
par theAvenger
Bonjour à tous !!
J'aimerais savoir s'il était possible de modifier la couleur de fond d'un tooltip.
Merci de votre aide.
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 18:11
par mikell
têt ben...
_GUIToolTip_SetTipBkColor

Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 18:15
par theAvenger
Non, ça ne marche pas.
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 18:24
par mikell
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 18:29
par theAvenger
Merci, j'avais aussi vu cette fonction dans l'aide, mais je n'ai pas réussi à l'utiliser.
Du coup, j'en fait une moi-même.
Enfin, sauf si tu peux m'expliquer comment faire apparaître la tooltip ?
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 19:01
par mikell
Le code qui est dans le lien précédent donne pas mal de renseignements
Mais à part créer le tooltip et le détruire après usage, je vois pas
Une solution alakon peut être de se créer un tooltip custom sous forme de petite gui popup (infiniment moins emm...dant)
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 19:01
par theAvenger
Si tu peux me dire quels sont les styles et les styles étendus pour créer une fenêtre sans barre de titre, je transmet la fonction que j'ai fait.
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 19:06
par mikell
Code : Tout sélectionner
#include <WindowsConstants.au3>
GuiCreate("", 200, 100, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)
GUISetBkColor (0xff0000)
GuiSetState()
While 1
Wend
Le $WS_EX_TOOLWINDOW est pour qu'elle n'apparaisse pas dans la barre des taches
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 20:41
par theAvenger
Merci beaucoup.
Je partage donc ma fonction. Dois-je la mettre dans la section Exemples de Scripts ?
► Afficher le texteVoir le code
Code : Tout sélectionner
#cs
Liste des fonctions :
_TootTip : Créé une tooltip.
_ToolTip_SetText : change le texte et/ou la couleur du texte et/ou la couleur du fond.
_ToolTip_Delete : Supprime la tooltip
Utilisation :
$tooltip = _ToolTip($parent, $texte [, $titre [, $x_pos [, $y_pos [, $largeur [, $hauteur [, $couleur_de_fond [, $couleur_texte]]]]]]])
$labels = @extended
$tooltip : la fonction renvoie le handle de la tooltip, nécessaire pour la supprimer ou changer le texte.
$labels : la fonction renvoie en extension une array contenant les handles des labels du titre de la tooltip et du texte,
nécessaires pour changer le titre ou le texte. 0 : titre ; 1 : texte.
$parent : Handle de la fenêtre parente.
$texte : Texte à afficher dans la tooltip.
$titre : Le titre de la tooltip, sinon "".
$x_pos : La position selon l'axe X par rapport au bord gauche de l'écran, sinon -1.
$y_pos : La position selon l'axe Y par rapport au bord supérieur de l'écran, sinon -1.
$largeur : La largeur de la tooltip, sinon -1.
$hauteur : La hauteur de la tooltip, sinon -1.
$couleur_de_fond : La couleur pour le fond de la tooltip, sinon -1.
$couleur_texte : La couleur du texte de la tooltip, sinon -1.
$erreur = _ToolTip_SetText($tooltip, $labels[0 ou 1] [, $texte [, $couleur_de_fond [, $couleur_texte]]])
$erreur : La fonction renvoie 0 en cas d'erreur, 1 si tout c'est bien déroulé.
$tooltip : Le handle de la tooltip renvoyé par _ToolTip().
$labels[0 ou 1] : Le handle du label concerné (0 pour le titre, 1 pour le texte) renvoyé en extension par _ToolTip().
$texte : Le nouveau titre ou texte, sinon "".
$couleur_de_fond : La nouvelle couleur du fond de la tooltip, sinon -1.
$couleut_texte : La nouvelle couleur du texte de la tooltip, sinon -1.
$erreur = _ToolTip_Delete($tooltip)
$erreur : La fonction renvoie 0 en cas d'erreur, 1 si tout c'est bien déroulé.
$tooltip : Le handle de la tooltip renvoyé par _ToolTip().
#ce
#include <GUIConstantsEx.au3>
Func _ToolTip($parent, $text, $title = "", $x = -1, $y = -1, $width = -1, $height = -1, $bk_color = -1, $color = -1)
Dim $LABEL[2]
If Not IsNumber($x) Or $x == "-1" Then $x = 0
If Not IsNumber($y) Or $y == "-1" Then $y = 0
If Not IsNumber($width) Or $width == "-1" Then $width = 200
If Not IsNumber($height) Or $height == "-1" Then $height = 75
If Not IsNumber($bk_color) Or $bk_color == "-1" Then $bk_color = 0xFFFFFF
If Not IsNumber($color) Or $color == "-1" Then $color = 0x000000
If Not IsHWnd($parent) Then Return 0
If Not IsString($title) Or $title == "" Then $title = ""
If Not IsString($text) Or $text == "" Then Return 0
$GUI = GUICreate("", $width, $height, $x, $y, $WS_POPUP, $WS_EX_TOOLWINDOW, $parent)
GUISetBkColor($bk_color, $GUI)
$LABEL[0] = GUICtrlCreateLabel($title, 5, 0, $width - 5, 30)
GUICtrlSetFont($LABEL[0], 16, 800)
GUICtrlSetBkColor($LABEL[0], $bk_color)
GUICtrlSetColor($LABEL[0], $color)
$LABEL[1] = GUICtrlCreateLabel($text, 5, 30, $width - 5, $height - 30)
GUICtrlSetBkColor($LABEL[1], $bk_color)
GUICtrlSetColor($LABEL[1], $color)
GUISetState(@SW_SHOW)
SetExtended($LABEL)
Return $GUI
EndFunc ;==>_ToolTip
Func _ToolTip_SetText($GUI, $HANDLE, $text = "", $bk_color = -1, $color = -1)
If Not IsString($text) Then $text = ""
If Not IsHWnd($GUI) Then Return 0
If Not IsHWnd($HANDLE) Then Return 0
If $bk_color <> "-1" Then
If Not IsNumber($bk_color) Then $bk_color = 0xFFFFFF
GUICtrlSetBkColor($HANDLE, Abs($bk_color))
EndIf
If $color <> "-1" Then
If Not IsNumber($color) Then $color = 0x000000
GUICtrlSetColor($HANDLE, $color)
EndIf
If $text <> "" Then
GUICtrlSetData($HANDLE, $text)
EndIf
Return 1
EndFunc ;==>_ToolTip_SetText
Func _ToolTip_Delete($GUI)
If Not IsHWnd($GUI) Then Return 0
GUIDelete($GUI)
Return 1
EndFunc ;==>_ToolTip_Delete
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 21:51
par mikell
Suggestion pour un vrai tooltip : un paramètre de timeout
Re: [..] Couleur d'un ToolTip.
Posté : dim. 18 déc. 2011 21:55
par theAvenger
Oui, mais comment faire en sorte de faire _ToolTip_Delete au bout d'un certains temps sans bloquer le programme appelant la fonction et sans avoir à relancer la fonction pour vérifier que le temps ne s'est pas écoulé ??
Re: [R] Couleur d'un ToolTip.
Posté : lun. 19 déc. 2011 12:09
par mikell
Avec un Timer
Re: [R] Couleur d'un ToolTip.
Posté : lun. 19 déc. 2011 21:52
par theAvenger
Un timer ?
Si veux parler de TimerInit() et TimerDiff(), cela bloquera quand même le script.
Et d'ailleurs, la fonction ToolTip originale ne prend pas en compte de timer, il faut faire un nouvel appel à la fonction pour la supprimer.
Re: [R] Couleur d'un ToolTip.
Posté : lun. 19 déc. 2011 22:42
par mikell
Un timer ne bloque pas le script (c'est pas un sleep)
Mais si tu préfères, qqe chose comme ça devrait marcher
Code : Tout sélectionner
Func _ToolTip(....... , $timeout = 0) ; en secondes
; code
If $timeout<>0 Then AdlibRegister("_ToolTip_Delete", $timeout*1000)
EndFunc
Func _ToolTip_Delete($GUI)
If Not IsHWnd($GUI) Then Return 0
If WinExists($GUI) Then GUIDelete($GUI)
AdlibUnRegister()
Return 1
EndFunc ;==>_ToolTip_Delete
Re: [R] Couleur d'un ToolTip.
Posté : lun. 19 déc. 2011 22:47
par theAvenger
Je ne connaissais pas la fonction adlibregister, merci de la (bonne) idée.
Re: [R] Couleur d'un ToolTip.
Posté : lun. 19 déc. 2011 23:06
par Tlem
Re: [R] Couleur d'un ToolTip.
Posté : mar. 20 déc. 2011 00:01
par theAvenger
Merci d'avoir allumé ma lanterne de la connaissance en contrepartie d'un grand et long moment à se demander que faire et à s'ennuyer, soyez sûr que je suis aussi heureux de connaître cette UDF que de manger des cuisses de grenouille et soyez certains que dans en un avenir où vous vous plairez à créer un script je vous ouvrirait aussi les portes de la connaissance et du savoir en vous montrant que ce que vous faites est totalement inutile puisqu'il existe déjà et bien évidement en beaucoup mieux que ce que vous aurez fait.

Re: [R] Couleur d'un ToolTip.
Posté : mar. 20 déc. 2011 01:18
par mikell
Ah mais c'est la spécialité des autorités locales, ça...
Traquer impitoyablement les réinventeurs de roue

Re: [R] Couleur d'un ToolTip.
Posté : mar. 20 déc. 2011 08:20
par Tlem
J'ai juste proposé quelque chose de fonctionnel (depuis 2008) et dont vous n'aurez pas forcément à modifier le comportement parce qu'il manque un petit truc ALC ...
Désolé d'avoir joué les troubles fêtes, mais comme l'a dit mikell, quand on peut éviter de ré-inventer la roue, c'est quand même plus simple ...
