Bonjour, une fonction existe pour faire un groupe de control?
par exemple j'ai 3 bouton, un label,un edit,...
ensuite en fesant un controlhide pour cacher ce groupe. merci
[..] Groupe de control?
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.
Re: [..] Groupe de control?
Je ne trouve pas sa extremement clair ce que tu VEUX C'est qu'ils affiche tes trois contrôles ou non pour sa avec If ou Case sa suffit avec sa tu met GuiCtrl... et voilà
Si j'ai bien compris sa devrai être sa.
Si j'ai bien compris sa devrai être sa.
- Tlem
- Site Admin
- Messages : 11796
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Groupe de control?
Je ne me souviens pas avoir vu ce genre de fonction dans AutoIt.
Le mieux sera sans doute de mettre ce groupe de contrôle dans une fonction, qui gérera l'affichage ou non.
Le mieux sera sans doute de mettre ce groupe de contrôle dans une fonction, qui gérera l'affichage ou non.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Groupe de control?
Et voila pour toi un belle exemple fait en 30 minutes:
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
GUICreate("test", 500, 500)
GUISetState()
$ca = GUICtrlCreateButton("Cacher", 100, 100)
$mo = GUICtrlCreateButton("Montrer", 300, 100)
$check = GUICtrlCreateCheckbox("Check !", 300, 300)
$lab = GUICtrlCreateLabel("LABEL !!!!", 400, 400)
$radio = GUICtrlCreateRadio("RADIO ?!?", 100, 400)
$input = GUICtrlCreateInput("Hein ? P**e ??? ^^", 200, 200)
$Group1 = GUICtrlGroup($check & "/" & $lab & "/" & $radio & "/" & $input) ; La fonction GUICtrlGroup() ne prend que 1 paramètre : les différents CTRL à regrouper, séparés du symbole "/" pour les différentier
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ca
GUICtrlGroupSetState($Group1, $GUI_HIDE) ; Fonction qui va cacher le groupe 1
Case $mo
GUICtrlGroupSetState($Group1, $GUI_SHOW) ; Fonction qui va montrer le groupe 1
EndSwitch
WEnd
Func GUICtrlGroup($sCtrl) ; Fonction 1 qui consiste à regrouper les CTRL
$sSplit = StringSplit($sCtrl, "/") ; La fonction découpe le paramètre par rapport au symbole "/"
$sReturn = $sSplit[0] & "." & $sCtrl ; Puis attribue le nombre de CTRL dans le GROUPE
Return $sReturn ; Et retourne le résultat ( soit le GROUPE )
EndFunc ;==>GUICtrlGroup
Func GUICtrlGroupSetState($sGUICtrlGroup, $sState) ; Fonction 2 qui consiste à changer l'état d'un GROUPE
$sSplit2 = StringSplit($sGUICtrlGroup, ".") ; Elle récupère le nombre de CTRL
$DiffCtrl = StringSplit($sSplit2[2], "/") ; Divise le GROUPE affin de récupéré tous les CTRL
For $i = 1 To $sSplit2[1] ; Une boucle va se répéter le nombre de fois = au nombre de CTRL affin de tous les modifier 1 par 1 ( très rapidement et instantané à nos yeux )
GUICtrlSetState($DiffCtrl[$i], $sState) ; Et HOP !
Next
EndFunc ;==>GUICtrlGroupSetState
Modifié en dernier par L4crymal le mar. 30 juin 2009 22:42, modifié 1 fois.
Re: [..] Groupe de control?
Ya pas de quoi ça me fait plaisir vu que c'est un très bel exemple qui va me servir aussi ( entre autre pour faire plusieurs systèmes d'onglets )
Bref le principe est Simple ( j'ai mis les commentaires ) :
Quand tu fait:
Cela va donner un identifiant au contrôle dans $MaVariable ( par exemple 5 )
C'est grâce à cet identifiant que les autre fonction agisse, par exemple quand tu fait GuiSetState($MaVariable, $GUI_HIDE)
Autoit va comprendre qu'il faut cacher le contrôle $Mavariable ( donc l'identifiant 5 )
Voila pour conclure cette partie les fonctions qui agissent sur les Contrôles utilisent des nombres pour repérer les différents Contrôles.
La deuxième partie s'intéresse à ma fonction, comment elle fonctionne?
Et bien c'est aussi simple ^^ :
Elle prend les identifiant de tous les contrôles à regrouper en paramètre, les sépare par de "/" puis quand vient le temps de les modifier tous en un coup, une autre fonction prend en paramètre le groupe et ferme 1 à 1 les contrôles en passant d'identifiant en identifiant grâce au séparateur "/"
VOILAAAAAAAAAAAAAAAA
Bref le principe est Simple ( j'ai mis les commentaires ) :
Quand tu fait:
Code : Tout sélectionner
$MaVariable=GUICtrlCreatemachintrucmuche()
C'est grâce à cet identifiant que les autre fonction agisse, par exemple quand tu fait GuiSetState($MaVariable, $GUI_HIDE)
Autoit va comprendre qu'il faut cacher le contrôle $Mavariable ( donc l'identifiant 5 )
Voila pour conclure cette partie les fonctions qui agissent sur les Contrôles utilisent des nombres pour repérer les différents Contrôles.
La deuxième partie s'intéresse à ma fonction, comment elle fonctionne?
Et bien c'est aussi simple ^^ :
Elle prend les identifiant de tous les contrôles à regrouper en paramètre, les sépare par de "/" puis quand vient le temps de les modifier tous en un coup, une autre fonction prend en paramètre le groupe et ferme 1 à 1 les contrôles en passant d'identifiant en identifiant grâce au séparateur "/"
VOILAAAAAAAAAAAAAAAA
- Tlem
- Site Admin
- Messages : 11796
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Groupe de control?
Il y a bien une solution existante.
Il s'agit d'utiliser GUICtrlCreateGroup d'une manière bien spécifique.
Voici un exemple trouvé sur le forum Anglais :
Il s'agit d'utiliser GUICtrlCreateGroup d'une manière bien spécifique.
Voici un exemple trouvé sur le forum Anglais :
Code : Tout sélectionner
#include <GUIConstants.au3>
GUICreate('test',430,160)
Global $g1s=GUICtrlCreateGroup('Test group - check/uncheck',10,10,200,100)
Global $c11=GUICtrlCreateCheckbox('11111',20,30)
Global $c12=GUICtrlCreateCheckbox('22222',20,50)
Global $c13=GUICtrlCreateCheckbox('33333',20,70)
Global $r1=GUICtrlCreateRadio('test',100,50,60)
Global $g1e=GUICtrlCreateGroup("", -99, -99, 1, 1) ;added
Global $b1Off=GUICtrlCreateButton('off',40,120,60)
Global $b1On=GUICtrlCreateButton('on',120,120,60)
Global $g2s=GUICtrlCreateGroup('Test group - enable/disable',220,10,200,100)
Global $c21=GUICtrlCreateCheckbox('11111',230,30)
Global $c22=GUICtrlCreateCheckbox('22222',230,50)
Global $c23=GUICtrlCreateCheckbox('33333',230,70)
Global $b2=GUICtrlCreateButton('test',310,50,60)
Global $g2e=GUICtrlCreateGroup("", -99, -99, 1, 1) ;added
Global $b2Off=GUICtrlCreateButton('off',250,120,60)
Global $b2On=GUICtrlCreateButton('on',330,120,60)
GUISetState()
While 1
Sleep(20)
Switch GUIGetMsg()
Case $b1Off
_GUICtrlGroup_SetState($GUI_UNCHECKED,$g1s,$g1e)
Case $b1On
_GUICtrlGroup_SetState($GUI_CHECKED,$g1s,$g1e)
Case $b2Off
_GUICtrlGroup_SetState($GUI_DISABLE,$g2s,$g2e)
Case $b2On
_GUICtrlGroup_SetState($GUI_ENABLE,$g2s,$g2e)
Case -3
Exit
EndSwitch
WEnd
Func _GUICtrlGroup_SetState($iState, $iFrom, $iTo)
For $i = $iFrom To $iTo
GUICtrlSetState($i, $iState)
Next
EndFunc
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".