Supprimer ou rendre inefficace control dans une Tab

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
littlechiki
Niveau 3
Niveau 3
Messages : 48
Enregistré le : sam. 13 avr. 2019 13:58
Status : Hors ligne

Supprimer ou rendre inefficace control dans une Tab

#1

Message 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 ?

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11510
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Supprimer ou rendre inefficace control dans une Tab

#2

Message par Tlem »

Bonsoir.
Une solution ici.
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é".

littlechiki
Niveau 3
Niveau 3
Messages : 48
Enregistré le : sam. 13 avr. 2019 13:58
Status : Hors ligne

Re: Supprimer ou rendre inefficace control dans une Tab

#3

Message 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...

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1830
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Supprimer ou rendre inefficace control dans une Tab

#4

Message 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é.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

littlechiki
Niveau 3
Niveau 3
Messages : 48
Enregistré le : sam. 13 avr. 2019 13:58
Status : Hors ligne

Re: Supprimer ou rendre inefficace control dans une Tab  

#5

Message 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 !

Répondre