[R] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

[R] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#1

Message par Boulanza »

Bonjour tout le monde,
En exécutant le code ci-joint et lorsque on clique sur le bouton suivant : "TabSheet1" afin de créer "TabSheet2", vous allez remarquer que le bouton "Suivant" est présent, en plus de cela il est inactif. Normalement ce bouton ne devrait pas être là.
Remarque: En faisons en marche arrière en cliquant sur le bouton "TabSheet1" , ledit bouton disparait ! ?
SVP: Peut on corriger cette anomalie ?
Cordialement.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <AutoItConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tabbed Notebook Dialog", 419, 311, 299, 218)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$Button4 = GUICtrlCreateButton("Suivant", 40, 56, 65, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
;~ $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
;~ $Button5 = GUICtrlCreateButton("Button5", 168, 88, 57, 33)
;~ GUICtrlSetFont(-1, 8, 400, 0, "Arial")
;~ $TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
;~ $Button6 = GUICtrlCreateButton("Button6", 256, 64, 73, 33)
;~ GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlCreateTabItem("")
$Button1 = GUICtrlCreateButton("&OK", 166, 272, 75, 25)
$Button2 = GUICtrlCreateButton("&Cancel", 246, 272, 75, 25)
$Button3 = GUICtrlCreateButton("&Help", 328, 272, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button4
TabSheet2()
        Case $Button2
            Exit

    EndSwitch
WEnd

Func TabSheet2()
$PageControl2 = GUICtrlCreateTab(8, 8, 396, 256)
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
EndFunc
Modifié en dernier par Boulanza le dim. 13 déc. 2020 20:39, modifié 1 fois.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#2

Message par Boulanza »

Bonjour,
En cherchant sur le forum anglais, j'ai trouvé la solution à mon problème:

Code : Tout sélectionner

GUICtrlSetState(-1, $GUI_SHOW)
Func TabSheet2()
$PageControl2 = GUICtrlCreateTab(8, 8, 396, 256)
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
 GUICtrlSetState(-1, $GUI_SHOW)
EndFunc
Cordialement.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#3

Message par Boulanza »

si j'ajoute une autre fonction: GUICtrlCreateTabItem("TabSheet3") soit donc:
Func TabSheet3()
$PageControl3 = GUICtrlCreateTab(8, 8, 396, 256)
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
 GUICtrlSetState(-1, $GUI_SHOW)
EndFunc

Code : Tout sélectionner

GUICtrlSetState(-1, $GUI_SHOW)
devient caduc
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#4

Message par walkson »

Bonjour,
Il n'y a pas d'anomalie mais une mauvaise construction
Func TabSheet($TabSheet)
$TabSheet2 = GUICtrlCreateTabItem($TabSheet)
GUICtrlCreateTabItem("")
Return $TabSheet2
EndFunc
        Case $Button4
         $tab += 1
         $TabSheet2 = TabSheet("Tab_" & $tab)
Ne pas oublier de déclarer $tab
$TabSheet2 peut être enregistré dans un array pour pouvoir le sélectionner par GUICtrlSetState($TabSheet2, $GUI_SHOW)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#5

Message par Boulanza »

Bonsoir walkson,
Merci infiniment pour votre aide très précieuses et très utiles...
Cette fois je cherche la commande et/ou la fonction qui permet de passer automatiquement à la fenêtre suivante lorsque on clique sur le bouton Suivane1/2/3 :
Designation1 à Designation2
Designation2 à Designation3 etc
Cordialement.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <AutoItConstants.au3>
Global $tab
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tabbed Notebook Dialog", 419, 311, 299, 218)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)

$TabSheet1 = GUICtrlCreateTabItem("Designation1")
$Button4 = GUICtrlCreateButton("Suivant1", 40, 56, 65, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")

$TabSheet2 = GUICtrlCreateTabItem("Designation2")
$Button5 = GUICtrlCreateButton("Suivant2", 168, 88, 57, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")

$TabSheet3 = GUICtrlCreateTabItem("Designation3")
$Button6 = GUICtrlCreateButton("Suivant3", 256, 64, 73, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")

GUICtrlCreateTabItem("")
$Button1 = GUICtrlCreateButton("&OK", 166, 272, 75, 25)
$Button2 = GUICtrlCreateButton("&Cancel", 246, 272, 75, 25)
$Button3 = GUICtrlCreateButton("&Help", 328, 272, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button4
MsgBox(64,"Suivant1","ok")
;"Je cherche la commande pour passer automatiquement à la fenettre :Designation2"  
Case $Button5
MsgBox(64,"Suivant2","ok")

Case $Button6
MsgBox(64,"Suivant3","ok")

Case $Button2
Exit

EndSwitch
WEnd
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#6

Message par Boulanza »

Bonsoir,
C'est
GUICtrlSetState($TabSheet1/2/3, $GUI_SHOW)
que je cherche pour solutionner mon souci.
Cordialement.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <AutoItConstants.au3>
#include <GuiTab.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tabbed Notebook Dialog", 419, 311, 299, 218)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)

$TabSheet1 = GUICtrlCreateTabItem("Designation1")
$Button4 = GUICtrlCreateButton("Suivant1", 40, 56, 65, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")

$TabSheet2 = GUICtrlCreateTabItem("Designation2")
$Button5 = GUICtrlCreateButton("Suivant2", 168, 88, 57, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")

$TabSheet3 = GUICtrlCreateTabItem("Designation3")
$Button6 = GUICtrlCreateButton("Suivant3", 256, 64, 73, 33)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")

GUICtrlCreateTabItem("")
$Button1 = GUICtrlCreateButton("&OK", 166, 272, 75, 25)
$Button2 = GUICtrlCreateButton("&Cancel", 246, 272, 75, 25)
$Button3 = GUICtrlCreateButton("&Help", 328, 272, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button4
MsgBox(64,"Suivant1","ok")
;"Je cherche la commande pour passer automatiquement à la fenettre :Designation2"
GUICtrlSetState($TabSheet2, $GUI_SHOW)
   Case $Button5
      MsgBox(64,"Suivant2","ok")
GUICtrlSetState($TabSheet3, $GUI_SHOW)

Case $Button6
MsgBox(64,"Suivant3","ok")
GUICtrlSetState($TabSheet1, $GUI_SHOW)
Case $Button2
Exit
EndSwitch
WEnd
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#7

Message par walkson »

Je n'ai pas compris votre question car votre code est fonctionnel
Si c'est pour gérer de nombreux tabs, je vous propose ceci (voir explication dans le code)

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <AutoItConstants.au3>
#include <GuiTab.au3>
#include <Array.au3>
Local $array[10][2]
$Form1 = GUICreate("Tabbed Notebook Dialog", 419, 311, 299, 218)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
For $i = 0 To 9
$array[$i][0] = GUICtrlCreateTabItem("Designation" & $i);on stoke les ID tabitem dans première colonne
$array[$i][1] = GUICtrlCreateButton("Suivant1", 40, 56, 65, 33);on stoke les ID button dans deuxième colonne
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Next
GUICtrlCreateTabItem("")
$Button1 = GUICtrlCreateButton("&OK", 166, 272, 75, 25)
$Button2 = GUICtrlCreateButton("&Cancel", 246, 272, 75, 25)
$Button3 = GUICtrlCreateButton("&Help", 328, 272, 75, 25)
GUISetState(@SW_SHOW)
_ArrayDisplay($array,"pour voir","",0,Default,"tabitem|button")

While 1
$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE, $Button2
		Exit

		Case $array[0][1] To $array[9][1];repère clic sur button
			$index = _ArraySearch($array,$nMsg) + 1
		If $nMsg = $array[9][1] Then ;si clic button du dernier tab
		GUICtrlSetState($array[0][0], $GUI_SHOW); on revient au premier tab
		Else
		GUICtrlSetState($array[$index][0], $GUI_SHOW);sinon on passe au tab suivant
		EndIf

	EndSwitch
WEnd
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Un bouton en plus lors de la création GUICtrlCreateTabItem! Peut on corriger cette anomalie

#8

Message par Boulanza »

Bonjour Monsieur walkson,
GUICtrlCreateTabItem("Designation")
Désignation: C'est variable = Etat civil|Cursus scolaire|Parcours professionnel|Toute autre info
$aTab[0] = GUICtrlCreateTabItem("Etat civil")
$aTab[1] = GUICtrlCreateTabItem("Cursus scolaire")
$aTab[2] = GUICtrlCreateTabItem("Parcours professionnel")
Il faut dire que toutes vos solutions et suggestions sont très utiles et ils sont à leur juste valeur, en plus, c'est une valeur ajoutée positive pour ce forum et à AutoIt. Merci.
Cordialement.
Répondre