[R] Progress bar "cliquable" ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

[R] Progress bar "cliquable" ?

#1

Message par SurPriseS »

Bonsoir,
Pour mon projet de lecteur de mousique, j'ai utiliser une progress bar :

GDIpProgress.au3 > http://www.autoitscript.com/forum/topic ... h-gdiplus/

Qui me permet d'afficher le niveau d'avancement de la chanson.

J'ai peut être mal fouiller, mais existe t'il un moyen ou un UDF tout fait, permettant d'afficher une progress bar de la même manière (voir photo) mais étant en plus cliquable ? pour me permettre de ma déplacer rapidement dans la chanson ?

Image

Merci :)
Modifié en dernier par SurPriseS le mar. 10 mai 2011 19:12, modifié 1 fois.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Progress bar "cliquable" ?

#2

Message par zeshrek »

Je vois pas ton image ici au bureau, mais je te fais un exemple a partir d'un slider 'standard' :
► Afficher le texte
Si vis pacem para bellum
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: [..] Progress bar "cliquable" ?

#3

Message par ZDS »

Hello !

Pour ton souci, il se règle en trois parties :

1) Rendre la progress bar cliquable : Il y a une petite restriction dans le code de l'UDF, au moment de la création de la progress bar, change la ligne GUICtrlSetStyle(-1, 0) par GUICtrlSetStyle(-1, 0x0100) ; StaticConstants.au3 : 0x0100 = $SS_NOTIFY (A changer dans le fichier "GDIpProgress.au3").

2) Récupérer le handle de la progress bar : Ce que tu récupères en retour de la fonction _ProgressCreate n'est pas l'identifiant de ta progress bar, mais un indice dans le tableau récapitulatif de toutes les progress bars customisées que tu as créées. Voici une fonction qui te retournera le handle voulu :

Code : Tout sélectionner

Func getProgressCtrlId($index)
    If IsDeclared("_Progress_Bars") Then
        If UBound($_Progress_Bars,1) > $index And UBound($_Progress_Bars,0) = 2 Then Return $_Progress_Bars[$index][0]
        SetError(1,0,0)
    EndIf
    SetError(1,0,0)
EndFunc
Grace à cette fonction, tu pourras détecter un appel à ta progress bar de façon classique dans ton code.
► Afficher le texteExemple
Facile, non? ^^

3) Détecter un position de clic relative à la taille totale : Bah oui, faut bien détecter où tu as cliqué dans la bar pour savoir si tu veux revenir au premier quart ou écouter les 10 dernières secondes ^^ Pour ça, rien de bien compliqué, juste des maths de bases : Deux fonctions à ajouter, et un appel pour chopper la valeur de pourcentage
► Afficher le texteFonctions
► Afficher le texteAppel
Voili voilou ! Je pense que tu t'en sortiras avec ces exemples. Si tu as d'autres soucis, copie ton code au passage, ça sera plus simple que de partir from scratch comme je viens de le faire :)

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 !
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Progress bar "cliquable" ?

#4

Message par SurPriseS »

han, merci !
Je test tout ça se soir !

Pour le code, je l'ai pas posté, parce que j'ai pas mal d'erreur si la bdd est pas créer, en gros faut fouillé pour le faire marché quand la bdd est pas OK xD

Faut que je bosse sur les conditions en cas d'erreur pour éviter les plantages ;)

Merci beaucoup en tout cas !
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Progress bar "cliquable" ?

#5

Message par SurPriseS »

J'ai fait quelques essais, globalement, j'ai compris comment ça marche, mais je ne comprend pas d'où sorte 2 variables :

Case $btn_0

Et $slid

Les fonctions sont dans le fichier Func_Carmedia_MCE.au3, le main est dans Carmedia MCE.au3 ;)

> Pour la création de la playlist, il faut supprimer : playlist.txt et bdd, une fois le logiciel lancé, il faut cliqué sur le bouton eject pour la création de la bdd (c'est mon bouton qui me sert de test xD)
Pour lire un dossier (j'ai l'impression que cette fonction bug), il faut : cliquer sur le bouton à coté du bouton "retour", et sélectionner le dossier avec les flèches et valider avec le bouton +

Voilou ;)

Merci :)
Fichiers joints
Carmedia MCE Standalone.zip
(2.51 Mio) Téléchargé 107 fois
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: [..] Progress bar "cliquable" ?

#6

Message par ZDS »

Re,

Dans mon exemple, $btn_0 est un bouton tout bête qui quand on appuye dessus fixe la barre à 0%. et $slid est un slider (GUICtrlCreateSlider). En fait, pour te dépanner je me suis basé sur un exemple fourni dans la doc anglaise de ton UDF. Ces deux variables y sont, c'est pour ça que je les ai mises dans mon exemple vu que tu n'avais pas fourni de code de départ ^^

Ne t'en occupe pas, c'est juste pour illustrer mon code.

Bref, je jette un coup d'oeil à ton code.

A bientôt !

EDIT: Ton code est bon dans l'ensemble, Il faut juste que tu remplaces la fin de ton fichier "Carmedia MCE.au3" par le bout de code suivant :
► Afficher le texteCarmedia MCE.au3
La progressbar fonctionne, je n'ai pas testé le reste, mais bonne chance :)

PS: Si tu as l'occasion, regarde de plus près ton code, car il y a une erreur sur Opt("OnExitFunc", "XXXXX"), et une quinzaine de warnings qui remontent.
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 !
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Progress bar "cliquable" ?

#7

Message par SurPriseS »

Oki, nickel merci ;)

Jvais retourner à mes math pour faire fonctionner l'avancement de la chanson !

Par contre pour les warning, comment on les vois ?

Parce que j'ai bien des erreurs (entre autre des variables non déclaré) quand je quitte sans lancé certaine fonction, mais j'ai pas vu les warning :oops:


Edit : Math finit, c'était plus simple que prévu ^^ sa marche nickel en tout cas ! Merci beaucoup :oops:
Répondre