[R] Désactivé checkbox si dossier n'existe pas

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

[R] Désactivé checkbox si dossier n'existe pas

#1

Message par Julien »

Bonjour,

Avant toute chose je tient à préciser que cela fonctionne sous Windows 7 mais pas sous XP. Le problème est la.
J'ai 2 cases à cocher (dans l'exemple), lorsque je lance l'application (non compilée) je détecte si les dossiers existent et si non je désactive les cases à cocher correspondantes.

Voila le code :

Code : Tout sélectionner

    Global $Check_1 = GUICtrlCreateCheckbox("Dir1", 32, 166, 97, 17)
    Global $Check_2 = GUICtrlCreateCheckbox("Dir2", 32, 182, 97, 17)

    Local $Chekboxcheck = $Check_1 & '|' & $Check_2
    $Element = StringSplit($Chekboxcheck, "|")

    Local $Path = "F:\Auto-it\" & '|' & "F:\Auto-it Portable\"
    $Element1 = StringSplit($Path, "|")

    init_checkbox()

    GUISetState(@SW_SHOW)

    ; Désactive les cas à cocher inutile
    Func init_checkbox()
        For $i = $Element1[0] - 1 To 1 Step -1
            If Not FileExists($Element1[$i]) Then
                GUICtrlSetState($Element[$i], $GUI_UNCHECKED)
                GUICtrlSetState($Element[$i], $GUI_DISABLE)
            EndIf
        Next
    EndFunc   ;==>init_checkbox
 
Encore une fois je précise que le problème est que cela ne fonctionne pas sur XP.

Auriez-vous une idée ?

D'avance merci.
Modifié en dernier par Julien le jeu. 06 oct. 2011 09:09, modifié 1 fois.
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [..] Désactivé checkbox si dossier n'existe pas

#2

Message par Julien »

J'ai trouvé (merci ConsoleWrite) !
en fait sous XP il me retournais \ pour les dossier non trouvés.

Donc j'ai modifié ceci :

Code : Tout sélectionner

If Not FileExists($Element1[$i]) Then
pour ceci :

Code : Tout sélectionner

If Not FileExists($Element1[$i]) Or $Element1[$i] = "\" Then
Encore une fois si j'avais regardé de plus près j'aurais pas posé la question.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Désactivé checkbox si dossier n'existe pas

#3

Message par ZDS »

Bonjour,

Désolé de te contredire, mais ton problème vient de l'interface chaise/clavier et non de ta machine, ni d'une histoire de ConsoleWrite à mon avis : ton code est faux
► Afficher le texteCorrection
  • Quand tu boucle sur un tableau, tu vas de 0 à Ubound($tab)-1 pour un tableau "0-based", et de 1 à $tab[0] pour un tableau "1-based".
  • Dans ton code, GUICtrlSetState($Element[$i], $GUI_UNCHECKED), Avec $Element[$i] qui est une chaine de caractères (car créé par StringSplit), or GUICtrlSetState attend que le paramètre soit correct, un nombre en l'occurrence.
  • Tu utilises pas mal de mécanismes lourds pour pas grand chose, voici une version plus simple de ton code.
    ► Afficher le texteautre version
A bientôt.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Répondre