[R] Action pour les menus déroulants

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
Daxou
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 17 oct. 2007 05:54
Status : Hors ligne

[R] Action pour les menus déroulants

#1

Message par Daxou »

Bonjour,

Voila pour gagner du temps dans mes recherche de programme dans mon menu démarrer, dans mes favoris internet ... ( et accessoirement pour passer le temps vu que je m'ennuies ) j'essaye de créer une Interface avec des Onglets ( ça c'est bon ) et dans chaque onglet j'ai intégré un menu déroulant ( ça aussi c'est bon... merci l'aide ^^ )

Le truc c'est que j'aimerai bien que quand je choisi une application dans le menu déroulant et que je clique sur OK, bah ça lance l'application ...

donc pour le moment j'ai ça que j'ai récupéré dans l'aide et un peu modifié :

Code : Tout sélectionner

GUICreate("Powered by Daxou",250,150)

GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)

$tab=GUICtrlCreateTab (10,10, 200,100)

$tab0=GUICtrlCreateTabitem ( "Applications")
GUICtrlCreateLabel ("Choix ?", 30,80,50,20)
$tab1combo=GUICtrlCreateCombo ("", 20,50,120,120)
GUICtrlSetData(-1,"Bloc note|FireFox|ThunderBird|Emule|Filezilla|PhotoShop|Paint|NetLimiter|VLC", "Bloc note")
$tab1OK=GUICtrlCreateButton ("Go!", 150,50,50,20)

GUICtrlCreateTabitem ("")

GUICtrlCreateLabel ("Click on tab and see the title", 20,130,250,20)

GUISetState ()

 
Comment je fais pour que quand je choisi par exemple FireFox dans le menu déroulant, il se lance quand je clique sur Go!

Merci de m'aiguiller un peu :)

Bonne journée
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

#2

Message par Vins83 »

tu peux suivre cet exemple qui me sert a redémarrer,arreter l'ordi ou arreter mon programme..

Code : Tout sélectionner

; Redemarrer
GUICtrlCreateGroup ( " Que voulez vous faire après la défragmentation ? " , 5 , 433 , 255 , 45 )
$shutdownisrunningoptimiser = GUICtrlCreateCombo ( " " , 10 , 448 , 245 , 20 )
$Shutdownoptimiser = GUICtrlSetData ( - 1 , " Arreter l ordinateur|redémarrer l ordinateur|Fermer AngelDefrag " , " Fermer AngelDefrag " )


;Fonction Shutdownoptimiser
Func _shutdownnettoyer ( )
$Shutdownoptimiser = GUICtrlRead ( $shutdownisrunningoptimiser )
Switch $Shutdownoptimiser
Case 'Arreter l ordinateur' Shutdown ( 1 )
Case 'redémarrer l ordinateur' Shutdown ( 2 )
Case 'Fermer AngelDefrag' Exit
EndSwitch
EndFunc ; == >_shutdownnettoyer
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

#3

Message par Voodoo »

Voila Voili Voilou:

Code : Tout sélectionner

#include <guiconstants.au3>
GUICreate ( " Powered by Daxou " , 250 , 150 )
GUISetBkColor ( 0x00E0FFFF )
GUISetFont ( 9 , 300 )
$tab = GUICtrlCreateTab ( 10 , 10 , 200 , 100 )
$tab0 = GUICtrlCreateTabitem ( " Applications " )
GUICtrlCreateLabel ( " Choix ? " , 30 , 80 , 50 , 20 )
$tab1combo = GUICtrlCreateCombo ( " " , 20 , 50 , 120 , 120 )
GUICtrlSetData ( - 1 , " Bloc note|FireFox|ThunderBird|Emule|Filezilla|PhotoShop|Paint|NetLimiter|VLC " , " Bloc note " )
$tab1OK = GUICtrlCreateButton ( " Go! " , 150 , 50 , 50 , 20 )
GUICtrlCreateTabitem ( " " )
GUICtrlCreateLabel ( " Click on tab and see the title " , 20 , 130 , 250 , 20 )
GUISetState ( )
While 1
$msg = guigetmsg ( )
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
msgbox ( 0 , " e " , guictrlread ( $tab1combo ) )
EndSelect
WEnd
Apres avoir crée tes gui, tu dois mettre une boucle ensuite pour que le programme ne s'arrête pas et détruise tes fenêtres.

Puis, Il faut "capter" les opérations faite sur ta fenêtre; sa c'est le guigetmsg(). Quand tu vas appuyer sur le boutton ' ok ', le programme va modifier la valeur de $msg. Donc si $msg=$tab1ok alors il faut lire le choix dans le combo. Et sa c'est le guictrlread qui s'en charge.

Enfin, le script ne sait pas ou sont les programmes donc il faut les defenir. Dans un fichier ini par exemple, maintenant que ont à le choix c'est facile !
Avatar du membre
Daxou
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 17 oct. 2007 05:54
Status : Hors ligne

#4

Message par Daxou »

Merci a vous, je vais essayer ca !
mais pour etre honnete je suis novice dans j'ai pas tout percuté !
donc je vais bidouiller et si je stagne je vous tiens au courant :)

Merci
Modifié en dernier par Daxou le jeu. 18 oct. 2007 03:12, modifié 1 fois.
Avatar du membre
Daxou
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 17 oct. 2007 05:54
Status : Hors ligne

#5

Message par Daxou »

Bon je patoge ...
J'ai remplacer ca :
VooDoo a écrit :

Code : Tout sélectionner

While 1
$msg = guigetmsg ( )
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
msgbox ( 0 , " e " , guictrlread ( $tab1combo ) )
EndSelect
WEnd
Par ca ( diference flagrante ... -_-' ) :

Code : Tout sélectionner

While 1
$msg = guigetmsg ("Bloc note")
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
run("C:\WINDOWS\notepad.exe")
EndSelect
WEnd
Donc quand je clique Go! ca lance Bloc note
mais si je choisi firefox ... ca lance quand meme bloc note !
normal en meme temps ...
Je me suis dit que j'allai refaire la meme chose en desous mais en remplacant BLOC NOTE par FIREFOX et en remplacant aussi les chemins d'acces ( forcement.. )
mais ca lance toujour bloc note :(

Chuis un boulet ... j'assume ! :D
merci
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

#6

Message par Vins83 »

Sa devrait ressembler a ça:

Code : Tout sélectionner

Case 'bloc note' run ( " C:\Windows\blocnote.exe " )
Case 'Firefox' run ( " C:\ProgramFiles\Mozilla Firefox\Firefox.exe " )

 
Avatar du membre
Daxou
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 17 oct. 2007 05:54
Status : Hors ligne

#7

Message par Daxou »

Ca j'ai compris, mais le truc c'est que je sais pas ou les mettre ^^

si je mets ca :

Code : Tout sélectionner

While 1
$msg = guigetmsg ( )
Select
case $msg = $GUI_EVENT_CLOSE
Exit
Case 'bloc note' run ("C:\WINDOWS\notepad.exe")
Case 'Firefox' run ("C:\Program Files\Mozilla Firefox\firefox.exe")
EndSelect
WEnd
quand je teste ca m'ouvre la fenetre avec le menu mais ca la referme tout de suite et ca me lance le notepad ...

Chuis dsl de vous enquiquiner avec ca mais mes connaissance dans ce dommaine sont bien piètre ... :oops:

merci en tout cas :)
-"Dit papa, à quoi ça sert Internet Explorer ?"
-"Ca sert à télécharger Firefox mon fils ..."
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#8

Message par Tlem »

Si vous adapter la fonction de Vins83

Code : Tout sélectionner

 ;Fonction Shutdownoptimiser
Func _shutdownnettoyer ( )
$Shutdownoptimiser = GUICtrlRead ( $shutdownisrunningoptimiser )
Switch $Shutdownoptimiser
Case 'Arreter l ordinateur' Shutdown ( 1 )
Case 'redémarrer l ordinateur' Shutdown ( 2 )
Case 'Fermer AngelDefrag' Exit
EndSwitch
EndFunc ; == >_shutdownnettoyer
 
Vous devez d'abord lire la valeur à surveiller : $Shutdownoptimiser = GUICtrlRead ( $shutdownisrunningoptimiser )
En remplacent la lecture de $shutdownisrunningoptimiser par la lecture de $tab1combo.

Puis en utilisant Switch, vous gérer les conditions.

Code : Tout sélectionner

Switch $MaValeur
Case 'Valeur de controle 1'
          Action 1
Case 'Valeur de controle 2'
         Action2
Case 'Valeur de controle 3'
         Action 3
Case Else
         Action Si aucune condition n'est valable.
EndSwitch
évidement, cette action doit être effectuée lorsque vous cliquer sur OK, et donc doit être placée dans votre boucle While en réponse au clic sur OK.
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é".
Avatar du membre
Daxou
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 17 oct. 2007 05:54
Status : Hors ligne

#9

Message par Daxou »

Merci bien, je teste ça dès que possible !

Je sens que ça commence à rentrer ! ( enfin je crois ) :)

Bonne journée à tous
-"Dit papa, à quoi ça sert Internet Explorer ?"
-"Ca sert à télécharger Firefox mon fils ..."
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#10

Message par ani »

Hello :)

Petit point important ... (non pas cela ^^')

Lors d'un post si vous répondez et que l'utilisateur indique du code, continuer avec le code énnoncé svp (n'oubliez pas les débutants) (je dis çà pour @VINS83 ;) ) , indiquer une solution possible ou metter l'utilisateur sur le chemin de la réponse.

Merci d'avance pour vous, et pour eux ;)

que le partage soit de rigueur :)
Répondre