[R] Création d'onglet automatique

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
lap1formatik
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 20 juil. 2016 13:47
Status : Hors ligne

[R] Création d'onglet automatique  

#1

Message par lap1formatik »

Bonjour

Je suis nouveau sur Autoit, cela fait que 2,3 semaines que je code sur SciTE :D
Après plusieurs recherches sur des forums et sur la documentation, je n'arrive pas à faire ce que je souhaite avec les onglets.

Mon objectif est de pouvoir créer des onglets à la voler. Je m'explique, lorsque je clic sur un bouton ( dans mon cas cet appui provient d'une seconde fenêtre ouverte préalablement), je veut qu'un nouvelle onglet apparaisse, et cela pas indéfiniment mais presque :wink:
Tout les onglets sont constitué de la même façon, quelques labels, 3 radios et une liste. A l'heure actuel je défini trois onglets directement en dur dans le code avec des copier coller, et je modifie l'état de chaque Control pour qu'il s'affiche au bon moment. C'est pas la joie...
Je voudrais donc savoir si il est possible de définir une sorte de structure, qui à chaque fois que je l'appelle me génère un onglet avec des Control prédéfini.

Je me la partie graphique du code actuel si ça peut aider à éclairer ma demande
Opt("GUIOnEventMode", 1)
$Main_GUI = GUICreate("", 1885, 983, 10, 10)
GUISetOnEvent($GUI_EVENT_CLOSE, "Main_GUIClose")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Main_GUIMinimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Main_GUIMaximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Main_GUIRestore")

$MenuItem1 = GUICtrlCreateMenu("Création")

$MenuItem2 = GUICtrlCreateMenuItem("Création d'entreprise", $MenuItem1)
GUICtrlSetOnEvent(-1, "MenuItem2Click")

$MenuItem3 = GUICtrlCreateMenu("Suppression")
GUICtrlSetState(-1,$GUI_DISABLE)

$MenuItem4 = GUICtrlCreateMenuItem("Suppression d'entreprise", $MenuItem3)
GUICtrlSetOnEvent(-1, "MenuItem4Click")

$Tab1 = GUICtrlCreateTab(0, 0, 1881, 961)
GUICtrlSetOnEvent(-1, "Change_ongletClick")

;~

$Entreprise1 = GUICtrlCreateTabItem(" ")

$List1 = GUICtrlCreateList("", 80, 184, 161, 383)
GUICtrlSetOnEvent(-1, "List1Click")
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_entreprise1 = GUICtrlCreateLabel("Entreprise1", 840, 50, 160, 36)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_effectif_entreprise1 = GUICtrlCreateLabel("Effectif : ", 50, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_effectif_entreprise1 = GUICtrlCreateLabel(" ", 100, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_activite_entreprise1 = GUICtrlCreateLabel("Activité : ", 50, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_activite_entreprise1 = GUICtrlCreateLabel(" ", 100, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info1_entreprise1 = GUICtrlCreateRadio("info1", 300, 325, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_repet_entreprise1Click")
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info2_entreprise1 = GUICtrlCreateRadio("info2", 300, 375, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_pene_entreprise1Click")
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info3_entreprise1 = GUICtrlCreateRadio("info3", 300, 425, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_temp_entreprise1Click")
GUICtrlSetState(-1,$GUI_HIDE)

;~

$Entreprise2 = GUICtrlCreateTabItem(" ")

$List2 = GUICtrlCreateList("", 80, 184, 161, 383)
GUICtrlSetOnEvent(-1, "List2Click")
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_entreprise2 = GUICtrlCreateLabel("Entreprise2", 840, 50, 160, 36)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_effectif_entreprise2 = GUICtrlCreateLabel("Effectif : ", 50, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_effectif_entreprise2 = GUICtrlCreateLabel(" ", 100, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_activite_entreprise2 = GUICtrlCreateLabel("Activité : ", 50, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_activite_entreprise2 = GUICtrlCreateLabel(" ", 100, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info1_entreprise2 = GUICtrlCreateRadio("info1", 300, 325, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_repet_entreprise2Click")
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info2_entreprise2 = GUICtrlCreateRadio("info2", 300, 375, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_pene_entreprise2Click")
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info3_entreprise2 = GUICtrlCreateRadio("info3", 300, 425, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_temp_entreprise2Click")
GUICtrlSetState(-1,$GUI_HIDE)
GUISetState(@SW_SHOW)

;~

$Entreprise3 = GUICtrlCreateTabItem(" ")

$List3 = GUICtrlCreateList("", 80, 184, 161, 383)
GUICtrlSetOnEvent(-1, "List3Click")
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_entreprise3 = GUICtrlCreateLabel("Entreprise3", 840, 50, 160, 36)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_effectif_entreprise3 = GUICtrlCreateLabel("Effectif : ", 50, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_effectif_entreprise3 = GUICtrlCreateLabel(" ", 100, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_nom_activite_entreprise3 = GUICtrlCreateLabel("Activité : ", 50, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$lbl_activite_entreprise3 = GUICtrlCreateLabel(" ", 100, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info1_entreprise3 = GUICtrlCreateRadio("info1", 300, 325, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_repet_entreprise3Click")
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info2_entreprise3 = GUICtrlCreateRadio("info2", 300, 375, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_pene_entreprise3Click")
GUICtrlSetState(-1,$GUI_HIDE)

$Radio_info3_entreprise3 = GUICtrlCreateRadio("info3", 300, 425, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_temp_entreprise3Click")
GUICtrlSetState(-1,$GUI_HIDE)
GUISetState(@SW_SHOW)
Merci d'avance pour vos réponses
LAP1
Modifié en dernier par lap1formatik le ven. 29 juil. 2016 16:10, modifié 2 fois.
42
lap1formatik
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 20 juil. 2016 13:47
Status : Hors ligne

Re: [..] Création d'onglet automatique

#2

Message par lap1formatik »

Merci a tous ceux qui ont lu ma question, j'ai l'impression quelle ne vous a pas inspiré :P

J'en déduit que ce n'est pas faisable :(

Merci tout de même
A la revoyure pour d'autres questions :mrgreen: !!
42
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Création d'onglet automatique

#3

Message par Tlem »

Bonjour lap1formatik
Ce n'est pas parce que personne ne vous a répondu que ce n'est pas possible.
En ce moment, c'est la période des vacances donc activité réduite, ensuite, pour vous aider à régler ce problème graphique, il faut un certain temps de recherche et de la motivation. ^^
Peut être qu'actuellement les membres actifs ne sont pas disposés à prendre du temps pour étudier la question.

Pour ma part, après avoir lu votre demande, je ne vois pas ce qui empêcherait de le faire en AutoIt.
Il me semble qu'il n'est pas possible de rajouter un onglet dynamiquement (mais j'en suis pas certain), par contre, rien ne vous empêche de créer le nombre d'onglet maximal et de les masquer.
Par la suite vous les ferez apparaitre au fur et à mesure de vos besoins (cela évitera un problème d'ID sur les éléments à contrôler).
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é".
lap1formatik
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 20 juil. 2016 13:47
Status : Hors ligne

Re: [..] Création d'onglet automatique

#4

Message par lap1formatik »

Bonjour

C'est vrai je n'avais pas pensé aux vacances :?

Crées mes onglets avant, c'est ce que j'avais commencé à faire. Mais ça me paraissais pas la méthode la plus opti, je pensais qu'il était possible de le faire en dynamique.
Mais bon vive le copier-coller :D

Merci Tlem
42
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Création d'onglet automatique

#5

Message par parazitenew »

Bonsoir,

C'est possible de créer des onglets dynamiques, un bouton qui créer un tabitem au clique, la fonction de la création de tabitem se lance, seulement ce qui va causer problèmes ceux sont les controls (champs de textes boutons etc.) de chaque tabitem. ça sera juste une "chakchouka".
lap1formatik
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 20 juil. 2016 13:47
Status : Hors ligne

Re: [..] Création d'onglet automatique

#6

Message par lap1formatik »

Merci
J'ai réussi à faire ce que je voulais :D
J'ai réussi à gérer les controlID en les stockant dans un tableau préalablement défini. Je les stocke au moment de la création et je peux en faire ce que je veux après.
Merci beaucoup sujet résolu :D

Mon code lié au onglets (au cas où quelqu'un est interessé :wink: )
Opt("GUIOnEventMode", 1)
$Main_GUI = GUICreate("", 1885, 983, 10, 10)
GUISetOnEvent($GUI_EVENT_CLOSE, "Main_GUIClose")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Main_GUIMinimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Main_GUIMaximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Main_GUIRestore")
 
$MenuItem1 = GUICtrlCreateMenu("Création")
 
$MenuItem2 = GUICtrlCreateMenuItem("Création d'entreprise", $MenuItem1)
GUICtrlSetOnEvent(-1, "MenuItem2Click")
 
$MenuItem3 = GUICtrlCreateMenu("Suppression")
GUICtrlSetState(-1,$GUI_DISABLE)
 
$MenuItem4 = GUICtrlCreateMenuItem("Suppression d'entreprise", $MenuItem3)
GUICtrlSetOnEvent(-1, "MenuItem4Click")
 
$Tab1 = GUICtrlCreateTab(0, 0, 1881, 961)
GUICtrlSetOnEvent(-1, "Change_ongletClick")
GUISetState(@SW_SHOW)

$nombre_entreprise=0
$nombre_de_control_par_onglet=9
$nombre_max_entreprise=50
Dim $tab[$nombre_de_control_par_onglet][$nombre_max_entreprise]
Global Const $Entreprise=0
Global Const $List=1
Global Const $lbl_nom_effectif_entreprise=2
Global Const $lbl_effectif_entreprise=3
Global Const $lbl_nom_activite_entreprise=4
Global Const $lbl_activite_entreprise=5
Global Const $Radio_info1_entreprise=6
Global Const $Radio_info2_entreprise=7
Global Const $Radio_info3_entreprise=8
;~ ...
Func MenuItem2Click()
   Crea()
   $nombre_entreprise=$nombre_entreprise+1
EndFunc

Func Crea()
$tab[$Entreprise][$nombre_entreprise] = GUICtrlCreateTabItem(" ")
 
$tab[$List][$nombre_entreprise] = GUICtrlCreateList("", 80, 184, 161, 383)
GUICtrlSetOnEvent(-1, "List1Click")
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$lbl_nom_entreprise][$nombre_entreprise] = GUICtrlCreateLabel("Entreprise1", 840, 50, 160, 36)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$lbl_nom_effectif_entreprise][$nombre_entreprise] = GUICtrlCreateLabel("Effectif : ", 50, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$lbl_effectif_entreprise][$nombre_entreprise] = GUICtrlCreateLabel(" ", 100, 50, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$lbl_nom_activite_entreprise][$nombre_entreprise] = GUICtrlCreateLabel("Activité : ", 50, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$lbl_activite_entreprise][$nombre_entreprise] = GUICtrlCreateLabel(" ", 100, 70, 160, 36)
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$Radio_info1_entreprise][$nombre_entreprise] = GUICtrlCreateRadio("info1", 300, 325, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_repet_entreprise1Click")
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$Radio_info2_entreprise][$nombre_entreprise] = GUICtrlCreateRadio("info2", 300, 375, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_pene_entreprise1Click")
GUICtrlSetState(-1,$GUI_HIDE)
 
$tab[$Radio_info3_entreprise][$nombre_entreprise] = GUICtrlCreateRadio("info3", 300, 425, 113, 17)
GUICtrlSetOnEvent(-1, "Radio_temp_entreprise1Click")
GUICtrlSetState(-1,$GUI_HIDE)
 
EndFunc
42
Répondre