[R] Agrandir une zone en même temps que la fenêtre

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

[R] Agrandir une zone en même temps que la fenêtre

#1

Message par EricF »

Bonjour,
Je commence l'utilisation de Koda. J4ai réussi à faire une fenêtre retaillable. Comment agrandir le contenu (une zone d'onglet dans mon test) automatiquement ?
Modifié en dernier par EricF le lun. 23 avr. 2012 19:44, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#2

Message par Tlem »

Vous devez surveiller la taille de votre GUI en utilisant une méthode simple tel que la comparaison de la taille à un instant T puis T + 1 ou bien de manière plus évoluée, vous devez utiliser une CallBack pour surveiller l'action du redimensionnement et adapter celle des éléments intérieur.
Vous trouverez cela en utilisant le moteur de recherche du forum.
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é".
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#3

Message par EricF »

MErci, je vais voir ça.

Pour rendre scrollable une zone, faut-il rajouter WS_VSCROLL dans l'inspecteur d'objets de Koda ? J'ai testé, mais l'ascenseur reste fixe.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#4

Message par mikell »

EricF a écrit :Comment agrandir le contenu (une zone d'onglet dans mon test) automatiquement ?
Tu as essayé GUICtrlSetResizing ?
Pour le scroll, ça dépend de ce que tu appelles "une zone"... une gui ? un controle ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#5

Message par EricF »

En l'occurence, une zone d'onglets. Le callback ne semble pas simple à mettre en place pour l'instant, je préfère donc mettre uen scrollbar au cas où le contenu dépasse la hauteur. Pour l'instant, le résultat n'est pas top :-/
gui.png
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#6

Message par mikell »

Heu, la solution la plus simple reste quand même de faire des boutons plus petits, ou des boutons radio dans un groupe, ça prend moins de place ^^
Une tab scrollable ça risque d'être chaud
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#7

Message par EricF »

LA disposition, c plus pour tester, la taille et l'écartement des boutons seront adaptés à la fin. LE problème est que je vais avoir besoin de créer un bon nombre de boutons dynamiquement. Mais je v essayer de les ranger sur plusieurs colonnes, ça devrait être facile en se basant sur le nombre de boutons à générer.
Sinon, si je mets ma zone d'onglets dans un groupe, je peux facilement faire scroller le groupe si j'adapte la hauteur des onglets selon le nombre de boutons ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#8

Message par mikell »

Facilement, ça j'ai comme un gros doute... :shock:
Mais le moment venu si tu postes un script fonctionnel comme exemple on testera et on verra bien si c'est faisable
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Agrandir une zone en même temps que la fenêtre

#9

Message par EricF »

Ok, je verrais déjà ce que je peux faire.

Merci poru vos réponses.
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#10

Message par EricF »

Deux problèmes se posent :

1. Problème de déclaration de variables de type Array pour les _FileListToArray(). J'ai zieuté un script qui fait globalement la même chose, la déclaration se faisait après le _FileListToArray(), mais pour ma part, ça semble difficile à faire.

Code : Tout sélectionner

    For $i = 1 To $dossiers[0]
        ; = $liste_fichiers & $dossiers[$i] & @CRLF
        $TabSheet[$i] = GUICtrlCreateTabItem($dossiers[$i])

        $fichiers = _FileListToArray("./" & $fichiers[$i] & "/", "*.rdp", 1) ;On liste les fichiers RDP

            For $j = 1 To $fichiers[0]
                ;$Button[$j] = GUICtrlCreateButton($fichiers[$j], $pos_haut, 72, 113, 33)
                $var = $var & $fichiers[$j] & @CRLF

                $pos_haut = $pos_haut+20
            Next
    Next
2. Comment affecter les actions aux boutons, ou plutôt comment générer les différents case pour mes boutons ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#11

Message par mikell »

1 - si tu mets 'Global $fichiers ' en tête de script ça devrait faire l'affaire
2 - La 1ère boucle For liste les dossiers et fait les tabs, la 2ème liste les fichiers et fait les boutons, donc a priori il te faut une array à 2 dimensions, $Button[$i][$j]
Quelle doit être l'action associée aux boutons ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#12

Message par EricF »

shellexecute

Maintenant, j'obtiens un "Subscript used with non-Array variable." sur la 3è ligne du code ($tabsheet). $dossiers et $tabsheet sont définis en global
Modifié en dernier par EricF le lun. 30 avr. 2012 22:11, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#13

Message par TopXm »

Hello,

Si j'ai bien pigé tu veux en fait lister puis ouvrir tes fichiers RDP lorsque tu les cliques ?

Dans ce cas passer par des boutons me parait lourd non ? Pourquoi ne pas passer par une list/listview/combo comme ça tu ne galères pas avec la gestion du positionnement des boutons ;)
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#14

Message par EricF »

TopXm a écrit :Dans ce cas passer par des boutons me parait lourd non ? Pourquoi ne pas passer par une list/listview/combo comme ça tu ne galères pas avec la gestion du positionnement des boutons ;)
Avec sélection multiple ? J'avais aussi penser passer par des checkboxes. A voir si c complexe avec des boutons.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#15

Message par TopXm »

Hello :)
EricF a écrit :Avec sélection multiple ? J'avais aussi penser passer par des checkboxes. A voir si c complexe avec des boutons.
Le moins lourd à mon avis c'est une ListView avec cases à cocher. J'ai adapté vite fait un bout de code que j'avais dans ma besace ;)
► Afficher le texteLister Fichiers/Dossiers
@+
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#16

Message par EricF »

Merci, je vais regarder ça. Dommage, je ne peux pas visualiser le résultat.
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [R] Agrandir une zone en même temps que la fenêtre

#17

Message par EricF »

J'ai réussi à résoudre tous les problèmes rencontrés.
Pour la définition des arrays, j'ai défini les variables en global avec un élément.

Code : Tout sélectionner

global $TabSheet[1]
global $fichiers[1]
Ensuite, à l'intérieur des boucles, je rajoute des éléments avec _ArrayAdd().

Code : Tout sélectionner

    For $i = 1 To $dossiers[0] 
        _ArrayAdd($TabSheet, $dossiers[$i]) ;On incrémente le nombre d'éléments du tableau
        $TabSheet[$i] = Guictrlcreatetabitem($dossiers[$i])

        $fichiers = _FileListToArray("./" & $dossiers[$i] & "/", "*.rdp", 1) ;On liste les fichiers RDP

            For $j = 1 To $fichiers[0]
                _ArrayAdd($checkboxes, $fichiers[$j]) ;On incrémente le nombre d'éléments du tableau
                GUICtrlCreateCheckbox($fichiers[$j], 25, $pos_haut)
Les boutons ont été remplacés par des checkboxes, plus faciles à gérer ici. Il reste à récupérer les cases cochées et à gérer les errreurs, plus quelques petites choses. Mais le plus gros est fait :)

Merci pour vos réponses.
Répondre