Page 1 sur 1

[R] Effectuer une fonction toutes les sec avec des param

Posté : mer. 14 oct. 2009 14:27
par guitarist
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

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : mer. 14 oct. 2009 15:31
par Iste
baaaah AdlibEnable() !
Par contre on peut pas lui passer de param a chaque foi, faut te débrouiller avec des variables Global :/

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : mer. 14 oct. 2009 15:37
par pop45
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)
► Afficher le texte
C'est vraiment du grosomodo et je suis même pas sur que sa marche

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : mer. 14 oct. 2009 16:45
par Iste
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

Code : Tout sélectionner

Global $X = 0
adlibenable (1erfonction , 1000)

func 1erfonction ()
$X += 1
mdgbox (0,"",  $X)
enfunc

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : jeu. 15 oct. 2009 13:39
par guitarist
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 :

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 
[/spoiler]

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]

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : jeu. 15 oct. 2009 14:01
par Iste
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
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..

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : jeu. 15 oct. 2009 18:07
par guitarist
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 :
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..

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : jeu. 15 oct. 2009 19:02
par Iste
Passer une variable correspond a donner la valeur d'une variable local ou global a une variable local de la fonction
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)
EndFunc

Peut 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)
EndFunc
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

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : jeu. 15 oct. 2009 23:39
par sylvanie
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 ^^

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : ven. 16 oct. 2009 18:19
par guitarist
@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!!!

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : ven. 16 oct. 2009 18:39
par Iste
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 ;)

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : ven. 16 oct. 2009 18:47
par sylvanie
est ce que ceci s'approcherait du résultat :
► Afficher le texte
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 ...

Re: [..] Effectuer une fonction toutes les sec avec des param

Posté : ven. 16 oct. 2009 19:24
par guitarist
Merci j'ai ENFIN(!!!!) reussi grace a vous (et vous etes tres tres patients) et voila le script fini :
► Afficher le texte