[R] Redimensionner GUI par programmation

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
laloute
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 23 mars 2014 14:27
Status : Hors ligne

[R] Redimensionner GUI par programmation

#1

Message par laloute »

Je vous explique mon soucis.

J'ai créé un GUI qui ressemble a ceci :
Image

J'aimerais que au démarrage du script, elle soit de cette taille là :
Image

Et pouvoir modifier sa taille grâce au checkbox, je clique elle reprend sa taille originale lors de la création.
J'ai fouillé sur ce forum et via google mais je n'ai eu le droit qu'a des redimensionnement de la gui et des composant avec l'action de la souris.

Merci d'avance.
Modifié en dernier par laloute le jeu. 27 mars 2014 11:09, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#2

Message par mikell »

à intégrer dans le script avec les valeurs voulues

Code : Tout sélectionner

While 1
; ....
    Case $checkbox
        If _IsChecked($checkbox) Then 
            WinMove($gui, "", Default, Default, $largeur1, $hauteur1)
        Else
            WinMove($gui, "", Default, Default, $largeur1, $hauteur2)
        EndIf
Wend

Func _IsChecked($control)
    Return BitAnd(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
laloute
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 23 mars 2014 14:27
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#3

Message par laloute »

Merci pour la réponse si rapide. :D

Mais cela ne va pas. Cette méthode modifie tous mes contrôles. Le TabItem passe en dessous la listview, la checkbox dessus.

Je pense à un méthode qui ne faisait que remonter la fenêtre en laissant les contrôles intact, Je sais qu'en c#, windev c'est possible.

Edit : Sinon j'ai pensé à la limite ne créer mon TabItem qu’après un WinMove pour agrandir la fenêtre et le supprimer à la réduction.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#4

Message par TommyDDR »

regardez du coté de GUICtrlSetResizing
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#5

Message par mikell »

et/ou GUIResizeMode
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1038
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#6

Message par walkson »

► Afficher le texte
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
laloute
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 23 mars 2014 14:27
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#7

Message par laloute »

Merci pour vos réponses. J avais commencé différemment mais la méthode de wali son est sympa. Je te test en rentrant.

Envoyé de mon GT-I9505 en utilisant Tapatalk
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#8

Message par mikell »

Remarque que watson ne fait qu'appliquer ce que TommyDDR a évoqué avant ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1038
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#9

Message par walkson »

Tout à fait Mikell, J'avais un exemple sous la main, j'ai pensé qu'il serait utile.
Autrement, c'est pas la Saint WALKSON aujourd'hui :P
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
laloute
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 23 mars 2014 14:27
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#10

Message par laloute »

Oui mais un novice comme moi un exemple est bien plus parlant. :D
J'utilisais un boucle 'while 1' avec 'Switch $nMsg' mais je vais peut être utiliser le mode événementiel qui me parait apporter plus de souplesse.

Je rencontre un problème quand même. Ma fenêtre est rogner en bas et à droite lorsque je remet la taille originale. J'ai essayer avec le code de walkson et c est pareil.
► Afficher le texte
J'ai juste mis '$GUI_DOCKALL' pour les bouttons.

ImageImage
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1038
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#11

Message par walkson »

Bonsoir,
Vous pouvez redimensionné la GUI

Code : Tout sélectionner

    Func Button1Click()

        If $i = 1 Then
             WinMove($Form1,"",Default, Default, 542,269)
             $i = 2
        ElseIf $i = 2 Then
             WinMove($Form1,"",Default, Default, 195,269);modifiez les dimensions L H
             $i = 1
        EndIf

    EndFunc
Sauf erreur de ma part, WinMove redimensionne la fenêtre complète et donc les dimensions sont différentes de GUICreate(), les marges et l'entête de la fenêtre à rajouter (à confirmer...?)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
laloute
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 23 mars 2014 14:27
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#12

Message par laloute »

Ah ok. Marche nikel comme ça.

Je cherche plus comment on supprime un contrôle par programmation.

Je créé un TabItem et je me sers de ce code pour le masquer quand je reviens sur la taille originale.

Code : Tout sélectionner

GUICtrlSetState($tab, $GUI_HIDE)
Est ce la meilleur méthode ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#13

Message par mikell »

walkson a écrit :Sauf erreur de ma part, WinMove redimensionne la fenêtre complète et donc les dimensions sont différentes de GUICreate()
Absolument mon cher wilson
C'est pour ça qu'il est plus prudent d'utiliser WinGetPos dans ce genre de circonstance Image
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1038
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#14

Message par walkson »

Je crois que je vais finir en Walkiri
Sinon, je n'avais pas pensé à WinGetPos, Là c'est net, clair et précis
@ Laloute GUICtrlSetState($tab, $GUI_HIDE) masque le contrôle mais ne le décharge pas, l’inverse: $GUI_SHOW Pour supprimer un contrôle: GuiCtrlDelete()
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
laloute
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 23 mars 2014 14:27
Status : Hors ligne

Re: [..] Redimensionner GUI par programmation

#15

Message par laloute »

Le soucis ou et non en fait, c'est que je vais avoir des checkbox, textbox avec des infos qui sont chargés au lancement de l'appli.
Si je supprime le contrôle je serais obliger de le recharger à chaque fois que je veux récupérer l’état d'un contrôle.

Merci mikell c est extrêmement clair maintenant.
Répondre