[R] Gui modifiable par l'utilisateur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
neric77
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 12 oct. 2009 17:31
Status : Hors ligne

[R] Gui modifiable par l'utilisateur

#1

Message par neric77 »

Bonjour,

Est il possible que l'utilisateur modifie sa GUI à sa convenance?

Je m'explique. A partir d'une Gui initiale vierge:
Image

l'utilisateur, suite à une action :
Image

peut ajouter un raccourci(bouton) à cette Gui:

Image

Merci d'avance pour vos réponses.

Neric77
Modifié en dernier par neric77 le ven. 30 juil. 2010 22:13, modifié 1 fois.
Sh4dows
Status : Hors ligne

Re: [..] Gui modifiable par l'utilisateur

#2

Message par Sh4dows »

Oui, c'est tout à fait possible !
Un simple GuiCtrlcreate en global lors d'un click sur un control et le tour est joué :lol:

Après si il souhaite déplacer le control il existe déjà un code de ce type sur le forum...
neric77
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 12 oct. 2009 17:31
Status : Hors ligne

Re: [..] Gui modifiable par l'utilisateur

#3

Message par neric77 »

Sh4dows a écrit :Oui, c'est tout à fait possible !
Un simple GuiCtrlcreate en global lors d'un click sur un control et le tour est joué :lol:

Après si il souhaite déplacer le control il existe déjà un code de ce type sur le forum...
J'ai essayer le Guictrlcreatebutton mais il n'apparait pas. J'ai essayé à partir d'une fonction et directement sous le case, dans les deux cas cela ne fonctionne pas
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Gui modifiable par l'utilisateur

#4

Message par SagePourpre »

Voici un petit exemple (codé grossièrement) démontrant la
faisabilité de la chose.

Code : Tout sélectionner

Global $rangee = 1, $col = 1, $nb_boutons = 0


Opt('GuiOnEventMode', 1)
$gui = GUICreate('Test', 250, 400)
GUISetOnEvent(-3, 'quitter')
$menu = GUICtrlCreateMenu('Action')
Global $ajout_bouton = GUICtrlCreateMenuItem('Ajouter un Bouton', $menu)
GUICtrlSetOnEvent($ajout_bouton, 'menu_events')
GUISetState()


While 1
    Sleep(10000)
WEnd


Func quitter()
    Exit
EndFunc   ;==>quitter

Func menu_events()
    Switch @GUI_CtrlId
        Case $ajout_bouton

            ConsoleWrite(Int($nb_boutons / 3))
            If Int($nb_boutons / 4) = $rangee Then
                $rangee += 1
                $col = 1
            EndIf

            Assign('_bouton_' & $nb_boutons + 1, GUICtrlCreateButton('Bouton ' & $nb_boutons, 10 + $col * 50 - 50, 10 + $rangee * 50 - 50, 45, 45), 2)
            GUICtrlSetOnEvent(-1, 'boutons_events')
            $col += 1
            $nb_boutons += 1




    EndSwitch


EndFunc   ;==>menu_events


Func boutons_events()
    For $i = 1 To $nb_boutons
        If @GUI_CtrlId = Eval('_bouton_' & $i) Then ; Bouton trouvé
            ;Action à effectuer avec le bouoton ( par exemple exécuter un programme, etc... )
            MsgBox(0, 'Notez Bien', 'Le bouton ' & $i - 1 & ' a été pressé')

        EndIf

    Next


EndFunc   ;==>boutons_events
 
Quelques points de repères :

- Utilisation de Assign et Eval afin de créer des événements aux boutons créés dynamiquement.
- Utilisation de variable afin de positionner les nouveaux boutons.

Finalement, c'est pas mal tout...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
neric77
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 12 oct. 2009 17:31
Status : Hors ligne

Re: [..] Gui modifiable par l'utilisateur

#5

Message par neric77 »

Merci
neric77
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 12 oct. 2009 17:31
Status : Hors ligne

Re: [R] Gui modifiable par l'utilisateur

#6

Message par neric77 »

Pour info,

Après de multiples tests, mon erreur se situe dans le fait que le programme ne veut pas du tray et de la modification de la gui sous la même fonction Func menu_events()

a+
Avatar du membre
benjahinfo
Niveau 3
Niveau 3
Messages : 43
Enregistré le : mar. 08 nov. 2011 11:05
Status : Hors ligne

Re: [..] Gui modifiable par l'utilisateur

#7

Message par benjahinfo »

Bonjour, peut-on le faire aussi mais pas avec du code événementiel ?
Auriez-vous un exemple ?

Up
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Gui modifiable par l'utilisateur

#8

Message par Tlem »

C'est vraiment grossier, mais en reprenant l'exemple de SagePourpre et en le transformant en mode standard, voici ce que cela donne :
► Afficher le texte
Par contre je ne vois pas l’intérêt de vouloir absolument éviter le mode événementiel, car en passant en mode normal, vous vous compliquez le code.
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
benjahinfo
Niveau 3
Niveau 3
Messages : 43
Enregistré le : mar. 08 nov. 2011 11:05
Status : Hors ligne

Re: [R] Gui modifiable par l'utilisateur

#9

Message par benjahinfo »

Merci,
Et bien en fait, j'ai commencer à apprendre Autoit de cette façon.
Je ne sais pas encore si la conversion de ces types deux modes se fait simplement.
Répondre