les ascenseur qui ne descendent pas
Posté : mar. 15 oct. 2024 19:03
Je cherche, je cherche, mais je ne trouve point comment faire marcher ce put... d'ascenseur, soit ça défile pas, soit ça fait une erreur, bref, même le chat gpt il bloque complet, help, au secours
Si quelqu'un peut m'expliquer là, parce que je sèche, vraiment, j'ai cherché partout, j'ai jamais réussi à faire fonctionner un de ces scroll bar, ni horizontal, ni vertical
bon, peut être aussi que je suis un boulet, ça s'étudie !!!
Bonne soirée, et merci à tous
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
; Chemin du fichier INI à ouvrir
Local $sDesktop = @ScriptDir & "\Export\export_agora.ini"
; Vérifier si le fichier INI existe
If Not FileExists($sDesktop) Then
MsgBox($MB_ICONERROR, "Erreur", "Le fichier INI n'a pas été trouvé.")
Exit
EndIf
; Liste des clés à afficher
Local $aKeys[9] = ["Fiche automate", "GMR", "GDP", "Ouvrage(IDR)", "Niveau de tension", "N°Sem", "Date MEC (fin OG)", "Pilote Chantier", "Manager de Projet"]
; Récupérer toutes les sections du fichier INI
Local $aSections = IniReadSectionNames($sDesktop)
If @error Then
MsgBox($MB_ICONERROR, "Erreur", "Impossible de lire les sections du fichier INI.")
Exit
EndIf
; Créer la GUI principale
Local $hGUI = GUICreate("New Exp Agora", 800, 600, 0, 0)
Local $hScroll = GUICtrlCreateScrollBar($hGUI, 780, 0, 20, 600) ; Créer l'ascenseur
Local $iYPos = 10 ; Position verticale de départ
Local $iMaxHeight = 0 ; Hauteur maximale
; Créer des labels pour chaque section et chaque clé
For $i = 1 To UBound($aSections) - 1
Local $sSection = $aSections[$i]
; Lire la valeur de la clé "Fiche automate"
Local $sAutomate = IniRead($sDesktop, $sSection, "Fiche automate", " -")
; Vérifier si la valeur "Fiche automate" est différente de " -"
If StringStripWS($sAutomate, 3) <> "-" Then
; Créer le label pour la section
Local $hLabelSection = GUICtrlCreateLabel($sSection, 10, $iYPos, 700)
$iYPos += 20 ; Espace après le label de section
For $j = 0 To UBound($aKeys) - 1
Local $sKey = $aKeys[$j]
Local $sValue = IniRead($sDesktop, $sSection, $sKey, "Non défini")
Local $sLabel = $sKey & ": " & $sValue
; Créer le label pour la clé
GUICtrlCreateLabel($sLabel, 10, $iYPos, 700)
$iYPos += 20 ; Espace après le label de clé
Next
$iYPos += 10 ; Espace entre les sections
EndIf
Next
$iMaxHeight = $iYPos ; Enregistrer la hauteur maximale des labels
; Ajuster la plage de défilement
GUICtrlSetData($hScroll, 0, $iMaxHeight - 600) ; Définir la plage de défilement
; Afficher la GUI
GUISetState(@SW_SHOW, $hGUI)
; Boucle d'attente pour gérer l'ascenseur
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $GUI_EVENT_VSCROLL
; Obtenir la position actuelle de l'ascenseur
Local $iScrollPos = GUICtrlRead($hScroll)
; Déplacer tous les labels en fonction de la position de l'ascenseur
For $k = 1 To $iMaxHeight / 20
Local $labelID = $k + 1 ; ID du label à mettre à jour
GUICtrlSetPos($labelID, 10, 10 + ($k * 20) - $iScrollPos) ; Met à jour les positions
Next
EndSwitch
WEnd
; Fermer la GUI
GUIDelete($hGUI)
bon, peut être aussi que je suis un boulet, ça s'étudie !!!
Bonne soirée, et merci à tous