Page 1 sur 1
[R] Problème de ToolTip
Posté : lun. 11 avr. 2011 16:39
par floriande26
Bonjour j'aimerais mettre une ToolTip pendant 10 secondes et aprés elle change
Par exemple :
ToolTip("Le chat privé est en cours d'éxécution ...",0,0)
10 secondes aprés sa change en :
ToolTip("Appuyez sur F6 pour quitter ...",0,0)
et sa aprés refait :
ToolTip("Le chat privé est en cours d'éxécution ...",0,0)
ect ...
Re: [...]Problème de ToolTip
Posté : lun. 11 avr. 2011 17:07
par sylvanie
Bonjour
vous pouvez vous inspirer de ceci en stockant vos messages dans un tableau :
► Afficher le texte
Code : Tout sélectionner
AdlibRegister("update_tooltip",10000)
TrayTip("Astuce !","Début du programme",1); ça c'est pou ne pas attendre les 10 premières secondes ...
While 1
Sleep(250)
WEnd
Func update_tooltip()
Local $texte[3] = [ "Bonjour","ça va ?","Au revoir"]
Local Static $indice=0
TrayTip("Astuce !",$texte[$indice],1)
$indice=Mod($indice+1,3)
EndFunc
Re: [...]Problème de ToolTip
Posté : lun. 11 avr. 2011 17:23
par ZDS
Salut !
Si c'est un tooltip sans aucun traitement derrière, tu peux faire un simple :
► Afficher le texte
Code : Tout sélectionner
Global $F6_Pushed = False
Func push_F6()
$F6_Pushed = True
EndFunc
ToolTip("Le chat privé est en cours d'éxécution ...",0,0)
Sleep(10*1000)
ToolTip("Appuyez sur F6 pour quitter ...",0,0)
HotKeySet("{F6}", "push_F6")
While Not $F6_Pushed
Sleep(100)
WEnd
ToolTip("Le chat privé est en cours d'éxécution ...",0,0)
Sleep(5*1000) ; Sinon ton tooltip s'efface quand le programme se coupe, là il patientera 5 secondes
Si c'est en parallèle d'un autre traitement (genre interface graphique), il vaut mieux l'incorporer dans la boucle de ta GUI (que ce soit en GGM-GUIGetMsg ou en OEM-OnEventMode), sinon le reste de ton code sera en standBy tant que ta boucle des tooltips ne sera pas fini (AutoIt est un langage où le code est séquentiel, tu peux pas faire de parallélisme). Pour te donner un exemple, où le tooltip suit la souris :
► Afficher le texte
Code : Tout sélectionner
Global $F6_Pushed = False, $phase = 0, $timer = TimerInit()
While True
Sleep(100)
Switch $phase
Case 0
If TimerDiff($timer) > 10*1000 Then
$phase = 1
HotKeySet("{F6}", "push_F6")
Else
afficheToolTipAvecSouris("Le chat privé est en cours d'éxécution ...")
EndIf
Case 1
If $F6_Pushed Then
$phase = 2
$timer = TimerInit()
Else
afficheToolTipAvecSouris("Appuyez sur F6 pour quitter ...")
EndIf
Case 2
If TimerDiff($timer) > 5*1000 Then
$phase = 3
Else
afficheToolTipAvecSouris("Le chat privé est en cours d'extinction ...")
EndIf
Case 3
ExitLoop
EndSwitch
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func push_F6()
$F6_Pushed = True
EndFunc
Func afficheToolTipAvecSouris($texte)
Local $mouse = MouseGetPos()
ToolTip($texte, $mouse[0]+10, $mouse[1]+10)
EndFunc
Tu as d'autres moyens, mais évite le plus possible les fonctions soit-disant parallèles comme Adlib.
A bientôt !
PS: Oups, grillé par Sylvanie ^^
Re: [R] Problème de ToolTip
Posté : mar. 12 avr. 2011 16:11
par floriande26
Merci à vous deux j'ai opter pour ZDS (le premier script des deux)
Sinon mon script quand j'appuis sur la croix pour fermer il reste allumer et beuge
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
Global $Form1 = GUICreate("Chat", 625, 422, 192, 124)
Global $List1 = GUICtrlCreateList("", 2, 2, 505, 383)
Global $List2 = GUICtrlCreateList("", 512, 2, 105, 383)
Global $Input1 = GUICtrlCreateInput("", 2, 392, 505, 21)
Global $Button1 = GUICtrlCreateButton("Envoyer", 512, 392, 107, 21, $WS_GROUP)
GUISetState(@SW_SHOW)
Global $F6_Pushed = False
Func push_F6()
$F6_Pushed = True
EndFunc
ToolTip("Le chat privé est en cours d'éxécution ... Il est : "&@HOUR&"h"&@MIN,0,0)
Sleep(10*1000)
ToolTip("Appuyez sur F6 pour quitter ...",0,0)
HotKeySet("{F6}", "push_F6")
While Not $F6_Pushed
Sleep(100)
WEnd
ToolTip("Le chat privé est en cours d'éxécution ...",0,0)
Sleep(5*1000)
HotKeySet("{F6}","_QUIT")
Global $serveur = "Vidar.IRC.Worldnet.Net"
Global $port = 6667
Global $channel = "#private#"
Global $pseudo = "floriande26"
Global $masock
TCPStartup()
$masock = TCPConnect(TCPNameToIP($serveur), $port)
sleep(5000)
TCPSend($masock, "NICK " & $pseudo & @CRLF)
TCPSend($masock, "USER " & $pseudo & " test test2 :OhMyGod " & @CRLF)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
TCPSend($masock, "PRIVMSG " & $channel & " :" & GUICTrlRead($Input1) & @CRLF)
_GUICTrlListBox_AddString($List1, "<" & $pseudo & "> " & GUICTRLRead($input1))
GUiCtrlsEtData($Input1, "")
EndSwitch
$data = TCPRecv($masock, 4000)
If @error Then Exit
If Not $data Then ContinueLoop
$datasplit = StringSplit($data, @CRLF, 1) ;
For $i = 1 To $datasplit[0]
$datasplit2 = StringSplit($datasplit[$i], " ")
If $datasplit2[1] = "PING" Then TCPSend($masock, "PONG " & $datasplit2[2] & @CRLF)
If $datasplit2[0] < 3 Then ContinueLoop
Switch $datasplit2[2]
Case "PRIVMSG"
$qui = StringMid($datasplit2[1], 2, StringInStr($datasplit2[1], "!") - 2)
$quoi = StringMid($datasplit[$i], StringInStr($datasplit[$i], ":", 0, 2) + 1)
$ou = $datasplit2[3]
_GUICtrlListBox_AddString($List1, "<" & $qui & "> " & $quoi)
Case "001"
TCPSend($masock, "JOIN " & $channel & @CRLF)
Case "353"
For $j = 6 To $datasplit2[0]
_GUICTrlListBox_AddString($List2, $datasplit2[$j])
Next
EndSwitch
Next
WEnd
Func _QUIT()
Exit
EndFunc
Voila le script si quelqu'un peut me dire mes erreurs

et si il marche car je l'ai pas tester encore
(Il devrais pouvoir envoyer des message d'un ordianteur a un autre comme MSN

)
Re: [R] Problème de ToolTip
Posté : jeu. 14 avr. 2011 14:43
par sksbir
floriande26 a écrit :
Sinon mon script quand j'appuis sur la croix pour fermer il reste allumer et beuge
.........
Bonjour
Ta boucle while/wend n'est pas exécutée.
Par exemple, le for... qui est dedans se bloque ou prend longtemps. Du coup, tu ne passes pas sur la partie de code qui gère la sortie.
Et sinon, c'est [..], et pas [...]