Page 1 sur 1

Supprimer ou rendre inefficace control dans une Tab

Posté : lun. 16 mars 2020 20:36
par littlechiki
Bonjour,
Je crée une application avec un GUICtrlCreateTab et j'aimerai savoir, est-ce qu'il serait possible de rendre un bouton inactif sur une seule tab ?
Par exemple,

Code : Tout sélectionner

GUICreate("",300,300)
$button = GUICtrlCreateButton("",100,100,100,100)
GUICtrlCreateTab(0,0,300,20)
GUICtrlCreateTabItem("Machin")
GUICtrlCreateTabItem("Bidule")
GUICtrlCreateTabItem("Truc")
Serait-il possible de retirer le bouton mais uniquement sur la tab truc ?

Re: Supprimer ou rendre inefficace control dans une Tab

Posté : lun. 16 mars 2020 21:59
par Tlem
Bonsoir.
Une solution ici.

Re: Supprimer ou rendre inefficace control dans une Tab

Posté : mar. 17 mars 2020 12:47
par littlechiki
Bon j'ai bien compris le code envoyé et je comprend pourquoi ça marche mais en essayant de faire quelque chose d'un peu différent, ça ne marche pas.
Personnellement, j'aimerai désactiver seulement un bouton donc j'ai :
#include <GUIConstantsEx.au3>

GUICreate("",300,300)
$button = GUICtrlCreateButton("",100,100,100,100)
$tab = GUICtrlCreateTab(0,0,300,20)
GUICtrlCreateTabItem("Machin")
GUICtrlCreateTabItem("Bidule")
GUICtrlCreateTabItem("Truc")
GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $tab
            If GUICtrlRead($tab) = "Truc" Then
                GUICtrlSetState($button,128); Bouton désactivé
            Else
                GUICtrlSetState($button,64);Bouton activé
            Endif
    EndSwitch
WEnd
Mais ça ne marche pas et je ne comprend pas pourquoi...

Re: Supprimer ou rendre inefficace control dans une Tab

Posté : mar. 17 mars 2020 14:20
par TommyDDR
Quand vous faites un if, et que ça ne fonctionne pas, prenez l'habitude d'afficher ce que vous testez :
ConsoleWrite(GUICtrlRead($tab) & @CRLF)
Vous verrez que cela vous retourne le numéro de l'onglet (0, 1, 2) et non pas le texte de l'onglet.
Ce qui est confirmé par l'aide de GUICtrlRead :
Tab | The index of the selected tabitem (0-based)
Remplacez :
If GUICtrlRead($tab) = "Truc" Then
par :
If GUICtrlRead($tab) = 2 Then
Et le tour est joué.

Re: Supprimer ou rendre inefficace control dans une Tab  

Posté : mar. 17 mars 2020 14:34
par littlechiki
Définitivement merci. En fait je n'avais jamais utilisé le ConsoleWrite et je vais maintenant l'utiliser plus pour des test et autres. Merci beaucoup !