Page 1 sur 2

[..] GUI - menu tout simple

Posté : jeu. 01 oct. 2009 16:31
par OmegAMRS
Bonjour,

j'aimerais faire un menu classique au possible, style "Menu" , avec 2 choix "se déconnecter" et "quitter"...
niveau GUI c'est fait, mais j'dois être un peu tagos :lol: , j'trouve pas comment affecter l'exécution d'une fonction à un item de mon menu ...


help please :)

OmegA

Re: [..] GUI - menu tout simple

Posté : jeu. 01 oct. 2009 19:17
par guitarist
Voilà une reponse pour toi :

Code : Tout sélectionner

$msg = GUIGetMsg ()

If $msg = $menuquitter Then
    Exit
EndIf

If $msg = $menusedeconnecter Then
    
    ;ton action se deco.
EndIf   
   

Re: [..] GUI - menu tout simple

Posté : jeu. 01 oct. 2009 19:33
par pop45
Regarde dans la section coda tu devrait trouver un $button1 et $button2

si 1 c'est pour Quitter et 2 pour se déconnecter et bien
tu rajoute sa apres case $GUI_EVENT_CLOSE

Code : Tout sélectionner

case $Button1
Msgbox ("quitter" , "Vous avez cliquer sur quitter"
case $Button2 
msgbox ("se deconnecter" , "Vous avez cliquer sur se déconnecter
 
Voila j'espère aider

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 11:29
par OmegAMRS
merci , mais ça ne marche toujours pas pour moi :s

voici mon code :
► Afficher le texte

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 13:59
par Tlem
Savez-vous qu'il y à une aide dans AutoIt ?
Avez-vous regardé l'aide de la commande GUICtrlCreateMenuItem() ?
Ne croyez-vous pas que l'exemple fournit dans l'aide est amplement suffisant ?

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 14:10
par OmegAMRS
exemple de l'aide :

Code : Tout sélectionner

$filemenu = GUICtrlCreateMenu("&File")
$fileitem = GUICtrlCreateMenuItem("Open", $filemenu)

While 1
        $msg = GUIGetMsg()
        
        If $msg = $fileitem Then
            $file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
            If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)
        EndIf
...
Wend
quelle est la différence avec mon code ????????
aucune, donc où est l'erreur ???

merci, j'ai regardé l'aide ...si vous regardez mes posts sur d'autres topic, vous verrez que c'est la première chose que je répond généralement sur ce type de questions ..

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 14:15
par Tlem
Ha ! Effectivement il y à un problème.
Je vous conseil donc de mettre à jour votre version de AutoIt, vous verrez que les exemples sont nettement plus riche. ;)

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 15:00
par OmegAMRS
j'ai installé AutoIt et Scite il y a moins d'un mois !

pensez vous que j'ai une version à mettre à jour ?

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 15:17
par Tlem
Sûrement, car chez moi, l'aide de la commande GUICtrlCreateMenu() me donne comme exemple :
► Afficher le texte
Ce qui est nettement plus complet que ce que vous donnez !!!

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 15:31
par OmegAMRS
d'accord c'est plus complet, mais intrèsequement, est-ce différent ? vous voyez un erreur dans mon code ?

merci en tout cas de vous pencher sur mon "cas" ;)

Re: [..] GUI - menu tout simple

Posté : ven. 02 oct. 2009 18:22
par Tlem
Et bien tout simplement vous utilisez une fonction GUICtrlxxxx pour créer un contrôle, mais vous n'avez pas de GUI, donc cela ne peut pas fonctionner.

Re: [..] GUI - menu tout simple

Posté : sam. 03 oct. 2009 13:45
par guitarist
Voilà une reponse :
► Afficher le texte
ATTENTION TU AVAIS OUBLIER LES ENDIF C'EST TRES TRES GRAVE :lol:

Re: [..] GUI - menu tout simple

Posté : sam. 03 oct. 2009 14:27
par Tlem
@guitarist
Il est très sympa de votre part de répondre à la question de OmegAMRS, mais uniquement si c'est pour dire quelque chose de vrai. En l'occurrence, vous n'y êtes pas du tout.

Un If peut avoir deux formes :

Code : Tout sélectionner

If $Var = 1 Then $Condition = True
ou

Code : Tout sélectionner

If $Var = 1 Then
  $Condition = 1
  MsgBox(32,"Hello", "Hello World")
EndIf
Mais ceci est faux :

Code : Tout sélectionner

If $Var = 1 Then $Condition = 1
  MsgBox(32,"Hello", "Hello World")
EndIf

Re: [..] GUI - menu tout simple

Posté : sam. 03 oct. 2009 14:39
par guitarist
Alors toutes mes escuses :( Mais j'espere que mon script est bin au moins

Re: [..] GUI - menu tout simple

Posté : sam. 03 oct. 2009 18:39
par sylvanie
Qu'est ce qui ne marche pas au juste ?
- pas d'action déclenchée
-pas d'affichage du menu
- de la gui ?

ça aiderait à cibler.

Re: [..] GUI - menu tout simple

Posté : lun. 05 oct. 2009 09:35
par OmegAMRS
merci pour vos réponses à tous :)

en effet, il n'y a pas de GUI créé dans le bout de code que je vous ai fourni, mais il existe bel et bien dans mon programme, je vous rassure.
ce programme fait pour l'instant environ 500 lignes de code, aussi ais-je mis ici simplement celles qui me posaient problème.

le problème est le suivant : pas d'action déclenchées quand je clique sur les éléments de mon menu...

d'autres part, je voulais savoir si vous voyez un moyen de personnaliser le menu, à savoir la taille du bouton initial, son emplacement par rapport au GUI, etc ... pour l'instant, je me penche sur le moyen de faire moi-même mon menu à la mano, mais bon je pressent que ça va être galère, et qu'au final ça sera une bidouille sans nom :/

merci à vous !

bonne journée

OmegA

Re: [..] GUI - menu tout simple

Posté : lun. 05 oct. 2009 18:31
par Tlem
Personnellement, je vous recommande vivement l'installation de Scite4AutoIt si ce n'est pas déjà fait (lien ici).

Ensuite allez dans le dossier C:\Program Files\AutoIt3\SciTE\Koda puis lancez le programme FD.exe.
Regardez dans la section supérieure, vous trouverez dans l'onglet Standard le deuxième icône qui vous permettra de construire le menu qu'il vous faut trés facilement. ;)
Cet outil comme vous le verrez fonctionne aussi pour tout les éléments graphique ...

Que du bonheur. 8)

Re: [..] GUI - menu tout simple

Posté : lun. 05 oct. 2009 21:21
par sylvanie
si la gui apparaît, c'est donc pas le guisetstate() qui manque (un grand classique ^^)

sinon, est que le mode évènementiel ( Opt("GUIOnEventMode", 1) ) est cumulé avec
GUIGetMsg(), car les deux ne marchent pas ensemble.

autre piste, est qu'il y a une succession de boucles while du type :

Code : Tout sélectionner

while gérant la gui
  ...
  appel à toto()

wend

func toto()
   while ...
         et on est coincé ici 
   wend
endfunc

Re: [..] GUI - menu tout simple

Posté : mar. 06 oct. 2009 14:05
par OmegAMRS
sylvanie a écrit : sinon, est que le mode évènementiel ( Opt("GUIOnEventMode", 1) ) est cumulé avec
GUIGetMsg(), car les deux ne marchent pas ensemble.

aaaah ca je savais pas, en effet, mon problème doit venir de là.

je vérifie ça et je vous tiens au courant, merci !!

@Tlem : oui, j'utilise déjà Scite et Koda, mais le menu créé par koda s'affiche invariablement en haut à gauche du GUI, comme tout menu "classique" qui se respecte ...

Re: [..] GUI - menu tout simple

Posté : lun. 12 oct. 2009 17:43
par OmegAMRS
j'ai laissé tomber l'idée du menu, n'arrivant pas a le placer en haut a DROITE de ma fenêtre :(

du coup j'ai remplacé par une sorte de mini barre d'outils, des boutons quoi ...
si quelqu'un a une soluce, je prend quand même ;)

j'aime pas m'avouer vaincu et faire une bidouille pour arriver au but recherché :p