Page 1 sur 1
[R] Valeurs d'une ListBox
Posté : lun. 17 mai 2010 14:42
par Rapace15
Bonjour à tous,
Nouveau dans la programmation AutoIt, je cherche pour mon travail à automatiser la création d'instance pour Oracle.
ce que je cherche à faire, c'est tester si une valeur est présente dans une listbox.
► Afficher le texte
Code : Tout sélectionner
[color=#BFBF00]; Lance l'interface de conf des instance.[/color]
Run("C:\ORA734\BIN\ORAINST.EXE /INSTALL /PRD C:\ORA734\NETWORK\CFG")
[color=#BFBF00]; Ecran d'installation initial.[/color]
WinWaitActive("SQL*Net Easy Configuration", "Ajouter un alias de base de données")
ControlClick("SQL*Net Easy Configuration", "", 1021)
ControlClick("SQL*Net Easy Configuration", "", 1)
[color=#BFBF00]; Ecran du choix de l'alias à afficher.[/color]
$MonChoix='swbo'
WinWaitActive("Choisir un alias de base de données", "Choisissez l'alias de base de données à examiner :")
ControlCommand("Choisir un alias de base de données","","ListBox1","SelectString",$MonChoix)
le problème, c'est que si $MonChoix n'existe pas, il me retourne la première valeur. Comment puis-je récupérer l'ensemble des valeur de la ListBox afin de tester l'existence de $MonChoix ?
Merci d'avance de vos réponses.
Re: [..] Valeurs d'une ListBox
Posté : lun. 17 mai 2010 16:02
par GaRydelaMer
Bonjour
alors comme tu débutes je te propose 2 solutions dont le principe est le même juste pour te montrer comment utiliser les UDF.
Le principe est de récupérer le Handle du contrôle (ta listbox). Puis on va traiter son contenu.
La solution 1 une fonction toute prête dans l'UDF GUIListBox. on teste son retour.
La solution 2, on va lire les "lignes" de la listbox, en retrouvant avant le nombre de ligne pour notre boucle For, et on compare ta chaine avec le texte de chaque Item (ligne).
Jette un œil dans l'aide pour chacune de ses fonctions.
► Afficher le texte
Code : Tout sélectionner
#include <GUIListBox.au3>
Local $hwnd = ControlGetHandle("Choisir un alias de base de données", "", "ListBox1")
$MonChoix = "swbo"
; Solution 1
Local $Find = _GUICtrlListBox_FindInText($hwnd, $MonChoix)
If $Find > -1 Then
;; OK ca existe je continue
MsgBox(0, "", "Trouvé à l'index " & $Find)
Else
;; la chaine $MonChoix n'est pas trouvé
MsgBox(0, "", "Pas trouvé")
EndIf
;; Solution 2
Local $Find = False
For $iIndex = 0 To _GUICtrlListBox_GetCount($hWnd) - 1
If _GUICtrlListBox_GetText($hWnd, $iIndex) = $MonChoix Then
;; OK ca existe je continue
MsgBox(0, "", "Trouvé à l'index " & $i)
ExitLoop
EndIf
Next
If Not $Find Then
MsgBox(0, "", "Pas trouvé")
EndIf
Re: [..] Valeurs d'une ListBox
Posté : lun. 17 mai 2010 16:57
par Rapace15
Merci à toi GaRydelaMer,
Ca fonctionne au poil.
Petite question subsidiaire, Est-il normal que je ne trouve pas l'aide de la fonction _GUICtrlListBox_FindInText ? Je suppose que les UDF doivent avoir leur propre documentation, où puis-je la trouvée ?
Re: [..] Valeurs d'une ListBox
Posté : lun. 17 mai 2010 17:05
par scorp84
Bonjour Rapace15,
L'aide de la fonction se trouve dans l'UDF lui-même.
Avec Scite, si tu ne trouves pas dans l'aide, tu sélectionnes l'include et tu va dans le menu OUTIL > Open Include.
Puis tu fais une recherche sur le nom de ta fonction.
En espérant avoir pu t'aider.
Amicalement.
BM
Re: [..] Valeurs d'une ListBox
Posté : lun. 17 mai 2010 17:07
par Rapace15
OK Merci à vous deux...
Je viens déjà de faire un pas de géant dans le monde d'autoit

Re: [R] Valeurs d'une ListBox
Posté : lun. 17 mai 2010 18:05
par GaRydelaMer
Re,
alors avec une installation standard d'AutoIt, les UDF et leur aide sont installé par défaut.
Dans Scite4AutoIt à installer aussi, tu les trouveras en appuyant sur F1 en cliquant sur la fonction.
Sinon le fichier d'aide: C:\Program Files\AutoIt3\UDFs3.chm vérifie qu'il soit présent.