[R] Effectuer une fonction toutes les sec avec des param
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Effectuer une fonction toutes les sec avec des param
Bonjour voilà tout est dans le titre je voudrai savoir si il existe une fonction permettant de faire fonctionner une autre fonction avec des param mais toutes les secondes seulement.
Merci de vos reponses
Merci de vos reponses
Modifié en dernier par guitarist le ven. 16 oct. 2009 19:24, modifié 1 fois.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
baaaah AdlibEnable() !
Par contre on peut pas lui passer de param a chaque foi, faut te débrouiller avec des variables Global :/
Par contre on peut pas lui passer de param a chaque foi, faut te débrouiller avec des variables Global :/
Signez ici
Re: [..] Effectuer une fonction toutes les sec avec des param
sa depend?
C'est fonction son constante? ou bien elle augmente de 1 tout le temps dans se cas la tu peut faire (je suis pas sur en tout cas je fait comme sa sur ma TI-82)
C'est vraiment du grosomodo et je suis même pas sur que sa marche
C'est fonction son constante? ou bien elle augmente de 1 tout le temps dans se cas la tu peut faire (je suis pas sur en tout cas je fait comme sa sur ma TI-82)
► Afficher le texte
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
Oui ca marcherait (si il a besoin d'incrémenter une variable), mais ya pas besoin de passer par deux fonctions ^^'
De plus, faut pasoublier non plus, comme je l'ai dit au début, d'utiliser des variable globales
pour reprendre ton code
De plus, faut pasoublier non plus, comme je l'ai dit au début, d'utiliser des variable globales
pour reprendre ton code
Code : Tout sélectionner
Global $X = 0
adlibenable (1erfonction , 1000)
func 1erfonction ()
$X += 1
mdgbox (0,"", $X)
enfuncSignez ici
Re: [..] Effectuer une fonction toutes les sec avec des param
Non sa ne marche pas car declarer la variable ne sert a rien puisque il s'agit de la variable correspondant un un CTRL pour une GUI
Voila mon bout de script (la GUI que vous verrer est elle-meme une fonction appelée par une autre GUI)
La fontion et la gui qui l'appelle :
[/spoiler]
Tout le script :
Voila mon bout de script (la GUI que vous verrer est elle-meme une fonction appelée par une autre GUI)
La fontion et la gui qui l'appelle :
Code : Tout sélectionner
[spoiler=]Func _changecouleurguifenetre ($gui)
$Form2 = GUICreate("Option", 566, 109, 155, 193)
$couleur = GUICtrlCreateLabel("", 304, 8, 100, 89)
$Slider1 = GUICtrlCreateSlider(424, 8, 129, 17)
$Slider2 = GUICtrlCreateSlider(424, 40, 129, 17)
$Slider3 = GUICtrlCreateSlider(424, 72, 129, 17)
$B1 = GUICtrlCreateButton ("OK",1,1,290,100)
GUICtrlSetLimit ($Slider1 & $Slider2 & $Slider3,255,0)
GUISetState(@SW_SHOW)
$sec2 = 1
Do
$nMsg3 = GUIGetMsg()
_tooltip(304,404,8,97,"Cliquer pour tester la couleur",$Form2)
Call ("_couleur",$Slider1 , $Slider2,$Slider3,$couleur,$Form2,$B1,$nMsg3,$sec2)
Until $nMsg3 = $GUI_EVENT_CLOSE
FileDelete ("sec.txt")
GUIDelete ($Form2)
EndFunc
Func _couleur ($Slider1 , $Slider2 , $Slider3,$labelcouleur,$gui,$B1,$nMsg,$sec2)
$rouge = Hex(GUICtrlRead($Slider1), 2)
$vert = Hex(GUICtrlRead($Slider2), 2)
$bleu = Hex(GUICtrlRead($Slider3), 2)
$CodeCouleurHexa = $rouge & $vert & $bleu
GUICtrlSetBkColor($labelcouleur, "0x" & $CodeCouleurHexa)
EndFunc Tout le script :
Code : Tout sélectionner
[spoiler=]#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <date.au3>
#Include <GuiButton.au3>
#include <SliderConstants.au3>
Dim $img = "\google.jpg"
FileInstall ("google.jpg","\google.jpg",1)
Dim $img2 = "\au3.jpg"
FileInstall ("au3.jpg","\au3.jpg",1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("SAE", 623, 386, 135, 124)
$Group1 = GUICtrlCreateGroup("Options", 8, 24, 257, 201)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 16, 56, 17, 17)
$Radio1 = GUICtrlCreateRadio("Radio1", 96, 56, 17, 17)
$Radio2 = GUICtrlCreateRadio("Radio2", 96, 80, 17, 17)
$Radio3 = GUICtrlCreateRadio("Radio3", 96, 104, 17, 17)
$Radio4 = GUICtrlCreateRadio("Radio4", 96, 128, 17, 17)
$Radio5 = GUICtrlCreateRadio("Radio5", 96, 152, 17, 17)
$Radio6 = GUICtrlCreateRadio("Radio6", 96, 176, 17, 17)
$Radio7 = GUICtrlCreateRadio("Radio7", 96, 200, 17, 17)
$Label1 = GUICtrlCreateLabel("Aide générale", 112, 56, 148, 17)
$Label2 = GUICtrlCreateLabel("Interface Utilisateur (GUI)", 112, 80, 148, 17)
$Label3 = GUICtrlCreateLabel("Active X/COM", 112, 104, 148, 17)
$Label4 = GUICtrlCreateLabel("Exemple de script", 112, 128, 148, 17)
$Label5 = GUICtrlCreateLabel("Fonction et UDF", 112, 152, 148, 17)
$Label6 = GUICtrlCreateLabel("Demande création de Scripts", 112, 176, 148, 17)
$Label7 = GUICtrlCreateLabel("Menu Principal", 112, 200, 148, 17)
$Label8 = GUICtrlCreateLabel("Rechercher", 32, 56, 60, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Go Autoit france", 336, 24, 193, 49, 0)
$Pic1 = GUICtrlCreatePic($img, 350, 150, 150, 100)
$Pic2 = GUICtrlCreatePic ($img2,150,304,50,50)
$Label9 = GUICtrlCreateLabel("Créé par guitarist", 8, 304, 100, 65)
$menu1 = GUICtrlCreateMenu ("Option")
$menuitem1 = GUICtrlCreateMenuItem ("Option de couleur",$menu1)
GUICtrlSetBkColor ($Button1,0x00CBFE)
GUISetState(@SW_SHOW)
GUISetBkColor (35421)
#EndRegion ### END Koda GUI section ###
$ttt = String ("Cliquez pour lancer Google")
$executeimg = String("http://www.google.fr")
While 1
_tooltip (350,500,150,250,$ttt,$Form1)
$nMsg = GUIGetMsg()
If $nMsg = $GUI_EVENT_CLOSE Then
Exit
EndIf
Select
Case $nMsg = $button1 And _IsChecked ($Radio1)
_internetautoit ("http://www.autoitscript.fr/forum/viewforum.php?f=3")
Case $nMsg = $button1 And _IsChecked ($Radio7)
_internetautoit ("http://www.autoitscript.fr/forum/index.php")
Case $nMsg = $button1 And _IsChecked ($Radio2)
_internetautoit ("http://www.autoitscript.fr/forum/viewforum.php?f=4")
Case $nMsg = $button1 And _IsChecked ($Radio3)
_internetautoit ("http://www.autoitscript.fr/forum/viewforum.php?f=5")
Case $nMsg = $button1 And _IsChecked ($Radio4)
_internetautoit ("http://www.autoitscript.fr/forum/viewforum.php?f=6")
Case $nMsg = $button1 And _IsChecked ($Radio5)
_internetautoit ("http://www.autoitscript.fr/forum/viewforum.php?f=21")
Case $nMsg = $button1 And _IsChecked ($Radio6)
_internetautoit ("http://www.autoitscript.fr/forum/viewforum.php?f=20")
Case $nMsg = $button1 And _IsChecked ($CheckBox1)
_internetautoit ("http://www.autoitscript.fr/forum/search.php")
Case $nMsg = $Pic1
_internetautoit ($executeimg)
Case $nMsg = $Button1
MsgBox (1+16,"Erreur","Merci de rentrer une option",5)
Case $nMsg = $menuitem1
_changecouleurguifenetre ($Form1)
EndSelect
WEnd
Func _IsChecked($control)
Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED
EndFunc
Func _tooltip($x1,$x2,$y1,$y2,$texteaff,$Form1)
$tabFenetre = WinGetPos($Form1)
$pos = GUIGetCursorInfo ($Form1)
$x = $pos[0]
$y = $pos[1]
If $y >= $y1 And $y <= $y2 Then
If $x >= $x1 And $x <= $x2 Then
ToolTip($texteaff, $x + 12 + $tabFenetre[0], $y + 50 + $tabFenetre[1])
EndIf
Else
ToolTip ("")
EndIf
endfunc
Func _internetautoit ($adresse)
$internetgui = GUICreate("Navigateur Perso", 800, 600, 0, 0, $WS_OVERLAPPEDWINDOW)
$lblAdresse = GUICtrlCreateLabel(" Adresse : ", 0, 8)
$txtAdresse = GUICtrlCreateInput("", 60, 5, 700)
$cmdGo = GUICtrlCreateButton(" Go ! ", 760, 5, 40, 22)
$lblHistorique = GUICtrlCreateLabel(" Historique : ", 0, 34)
$listeHistorique = GUICtrlCreateCombo("", 60, 30, 700)
$cmdGo2 = GUICtrlCreateButton(" Go ! ", 760, 30, 40, 22)
$gauche = 50
$cmdPrecedent = GUICtrlCreateButton(" <---- ", 60, 55, 70, 22)
$cmdSuivant = GUICtrlCreateButton(" ----> ", 130, 55, 70, 22)
$cmdArreter = GUICtrlCreateButton(" Arrêter ", 200, 55, 70, 22)
$cmdAcutaliser = GUICtrlCreateButton(" Acutaliser ", 270, 55, 70, 22)
$cmdDemarrage = GUICtrlCreateButton(" Démarrage ", 340, 55, 70, 22)
$cmdRechercher = GUICtrlCreateButton(" Rechercher ", 410, 55, 70, 22)
$cmdEnregistrer = GUICtrlCreateButton(" Enregistrer ", 480, 55, 70, 22)
$cmdImprimer = GUICtrlCreateButton(" Imprimer ", 550, 55, 70, 22)
_IEErrorHandlerRegister()
$ie = _IECreateEmbedded()
$ieobject = GUICtrlCreateObj($ie, 0, 82, 800, 540)
$ancien = ""
$go = 1
_IEAction($ie, "home")
GUISetState()
_IENavigate ($ie,$adresse)
Do
Sleep(10)
GUICtrlSetResizing($ieobject, $GUI_DOCKAUTO + $GUI_DOCKBOTTOM + $GUI_DOCKTOP)
GUICtrlSetResizing($lblAdresse, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($txtAdresse, $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($cmdGo, $GUI_DOCKRIGHT + $GUI_DOCKSIZE + $GUI_DOCKTOP)
GUICtrlSetResizing($lblHistorique, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($listeHistorique, $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($cmdGo2, $GUI_DOCKRIGHT + $GUI_DOCKSIZE + $GUI_DOCKTOP)
GUICtrlSetResizing($cmdPrecedent, $GUI_DOCKALL)
GUICtrlSetResizing($cmdSuivant, $GUI_DOCKALL)
GUICtrlSetResizing($cmdArreter, $GUI_DOCKALL)
GUICtrlSetResizing($cmdAcutaliser, $GUI_DOCKALL)
GUICtrlSetResizing($cmdDemarrage, $GUI_DOCKALL)
GUICtrlSetResizing($cmdRechercher, $GUI_DOCKALL)
GUICtrlSetResizing($cmdEnregistrer, $GUI_DOCKALL)
GUICtrlSetResizing($cmdImprimer, $GUI_DOCKALL)
$nouveau = _IEPropertyGet($ie, "locationurl")
If $ancien <> $nouveau Then
GUICtrlSetData($txtAdresse, $nouveau)
GUICtrlSetData($listeHistorique, _Now() & " => " & $nouveau, _Now() & " => " & $nouveau)
$ancien = $nouveau
$go = 0
EndIf
$nMsg2 = GUIGetMsg ()
Select
Case $nMsg2 = $cmdGo
_IENavigate($ie, GUICtrlRead($txtAdresse), 0)
Case $nMsg2 = $cmdGo2
_IENavigate($ie, StringMid(GUICtrlRead($listeHistorique), 24), 0)
Case $nMsg2 = $cmdPrecedent
_IEAction($ie, "back")
If @error Then
MsgBox(0, "", "")
EndIf
Case $nMsg2 = $cmdSuivant
_IEAction($ie, "forward")
Case $nMsg2 = $cmdArreter
_IEAction($ie, "stop")
Case $nMsg2 = $cmdAcutaliser
_IEAction($ie, "refresh")
Case $nMsg2 = $cmdDemarrage
_IEAction($ie, "home")
Case $nMsg2 = $cmdRechercher
_IENavigate($ie, "http://www.google.fr", 0)
Case $nMsg2 = $cmdEnregistrer
_IEAction($ie, "saveas")
Case $nMsg2 = $cmdImprimer
_IEAction($ie, "print")
EndSelect
Until $nMsg2 = $GUI_EVENT_CLOSE
GUIDelete ($internetgui)
EndFunc
Func _changecouleurguifenetre ($gui)
$Form2 = GUICreate("Option", 566, 109, 155, 193)
$couleur = GUICtrlCreateLabel("", 304, 8, 100, 89)
$Slider1 = GUICtrlCreateSlider(424, 8, 129, 17)
$Slider2 = GUICtrlCreateSlider(424, 40, 129, 17)
$Slider3 = GUICtrlCreateSlider(424, 72, 129, 17)
$B1 = GUICtrlCreateButton ("OK",1,1,290,100)
GUICtrlSetLimit ($Slider1 & $Slider2 & $Slider3,255,0)
GUISetState(@SW_SHOW)
$sec2 = 1
Do
$nMsg3 = GUIGetMsg()
_tooltip(304,404,8,97,"Cliquer pour tester la couleur",$Form2)
Call ("_couleur",$Slider1 , $Slider2,$Slider3,$couleur,$Form2,$B1,$nMsg3,$sec2)
Until $nMsg3 = $GUI_EVENT_CLOSE
FileDelete ("sec.txt")
GUIDelete ($Form2)
EndFunc
Func _couleur ($Slider1 , $Slider2 , $Slider3,$labelcouleur,$gui,$B1,$nMsg,$sec2)
$rouge = Hex(GUICtrlRead($Slider1), 2)
$vert = Hex(GUICtrlRead($Slider2), 2)
$bleu = Hex(GUICtrlRead($Slider3), 2)
$CodeCouleurHexa = $rouge & $vert & $bleu
GUICtrlSetBkColor($labelcouleur, "0x" & $CodeCouleurHexa)
EndFunc [/spoiler]- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
Et alors ? une variable reste une variable, suffit de la déclarer en global des le début pis ya plus besoin de la passer a la fonction..guitarist a écrit :Non sa ne marche pas car declarer la variable ne sert a rien puisque il s'agit de la variable correspondant un un CTRL pour une GUI
Signez ici
Re: [..] Effectuer une fonction toutes les sec avec des param
HMMMMMMMMM merci de LIRE mon MESSAGE!!!!!!! la variable correspond a un controle et elle est primordiale pour changer la couleure du label!!!!
DONC sa c'est faut :
DONC sa c'est faut :
Et alors ? une variable reste une variable, suffit de la déclarer en global des le début pis ya plus besoin de la passer a la fonction..
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
Passer une variable correspond a donner la valeur d'une variable local ou global a une variable local de la fonction
soit,
Peut aussi s'exprimer sans passage de variable a l'aide de global
Bref, je commence a en avoir un petit peu marre de me justifier, PRENEZ le TEMPS de COMPRENDRE les messages des autres, merci (moi aussi je sais mettre des majuscule
)
Edit : J'ai peu etre tord, mais dans ce cas, expliquez mieux votre probleme
soit,
Code : Tout sélectionner
Func fonction()
Local $variable_local
$variable_local = GUICreate("gui")
Autre_fonction($variable_local)
EndFunc
Func Autre_fonction($Recup)
GUIDelete($Recup)
EndFuncPeut aussi s'exprimer sans passage de variable a l'aide de global
Code : Tout sélectionner
Global $Variable_a_passer_n1, $Variable_a_passer_n2, $Variable_a_passer_n3 ;etc
Func fonction()
Local $variable_local
$variable_local = GUICreate("gui")
$Variable_a_passer_n1 = $variable_local
Autre_fonction()
EndFunc
Func Autre_fonction()
GUIDelete($Variable_a_passer_n1)
EndFuncEdit : J'ai peu etre tord, mais dans ce cas, expliquez mieux votre probleme
Signez ici
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
Bonsoir,
+1 sur les remarques d'Iste
sinon, concernant la fonction "_changecouleurguifenetre", $gui est donné comme paramètre, mais n'est appelé nul par dans le corps de la fonction, il en est de même pour "_couleur" avec les paramètres $gui,$B1,$nMsg,$sec2
C'est parcequ'elles sont en cours de conception ? Car sinon on peut les enlever de l'appel ça aidera pas mal ^^
+1 sur les remarques d'Iste
sinon, concernant la fonction "_changecouleurguifenetre", $gui est donné comme paramètre, mais n'est appelé nul par dans le corps de la fonction, il en est de même pour "_couleur" avec les paramètres $gui,$B1,$nMsg,$sec2
C'est parcequ'elles sont en cours de conception ? Car sinon on peut les enlever de l'appel ça aidera pas mal ^^
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Re: [..] Effectuer une fonction toutes les sec avec des param
@Iste escus moi pour ce mouvement d'humeur (de un)
de deux mon probleme ce n'est as la variable mais le faite de pouvoir changer la couleur d'un controle donc que la variable soit egale a 1 a la limite sa sert a rien du tout et dans ton ex si j'ai bien tout vu ce que je dis la est vrai par a port a ce que ta marquer et comme je ne pas fair dan la fonction Guicreate puisque une fonction a deja ete créé^pour en creer une ,enfin (aller voir mon script^^)et bien je repete maquestion : Comment faire pour appeler une fonction toutes es sec avec des param de ctrl de gui a changer voila!!!
de deux mon probleme ce n'est as la variable mais le faite de pouvoir changer la couleur d'un controle donc que la variable soit egale a 1 a la limite sa sert a rien du tout et dans ton ex si j'ai bien tout vu ce que je dis la est vrai par a port a ce que ta marquer et comme je ne pas fair dan la fonction Guicreate puisque une fonction a deja ete créé^pour en creer une ,enfin (aller voir mon script^^)et bien je repete maquestion : Comment faire pour appeler une fonction toutes es sec avec des param de ctrl de gui a changer voila!!!
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
Ben, je suis désolé mais je vais me répéter, il suffit de mettre le controlID du control dans une variable global ^^'
Au moment ou tu crée ton control, tu assigne une variable a sont ID ($var = guicrtlcreatetc...), il suffit juste apres, de rendre une global égale a cette variable (Global $var2 = $var), par la suite, dans ta fonction qui arrive toute les seconde, suffit de changer la couleur du control don l'id et contenu dans $var2
En fait, avec un code simplifié mais fonctionnel, je crois qu'on se comprendrez mieux.
Essayez donc de reproduire le problème de facon isolé, car comme le dit sylvanie votre code actuel est plein d'incohérence (donc pas facile a débuger :s)
Une foi fait, si vous bloquez toujours, postez le code "qui ne peut pas marcher", et nous en reparlerons
Au moment ou tu crée ton control, tu assigne une variable a sont ID ($var = guicrtlcreatetc...), il suffit juste apres, de rendre une global égale a cette variable (Global $var2 = $var), par la suite, dans ta fonction qui arrive toute les seconde, suffit de changer la couleur du control don l'id et contenu dans $var2
En fait, avec un code simplifié mais fonctionnel, je crois qu'on se comprendrez mieux.
Essayez donc de reproduire le problème de facon isolé, car comme le dit sylvanie votre code actuel est plein d'incohérence (donc pas facile a débuger :s)
Une foi fait, si vous bloquez toujours, postez le code "qui ne peut pas marcher", et nous en reparlerons
Signez ici
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Effectuer une fonction toutes les sec avec des param
est ce que ceci s'approcherait du résultat :
Ou bien est ce que les id de contrôle à changer ne sont pas les mêmes d'un appel à l'autre ? ie : on update un edit, puis on change la taile d'une icone, puis un label après ...
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Re: [..] Effectuer une fonction toutes les sec avec des param
Merci j'ai ENFIN(!!!!) reussi grace a vous (et vous etes tres tres patients) et voila le script fini :
► Afficher le texte


