IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

gerer une fenetre fille tkinter [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Mars 2015
    Messages : 10
    Par défaut gerer une fenetre fille tkinter
    Bonsoir,

    Je suis débutant Python, j'ai décidé de commencer par le module tkinter.

    Malgré plusieurs jours de recherche, je n'ai pas trouvé le moyen de faire fonctionner la fenêtre fille en intégrant son code dans celui de la fenêtre principale.

    Pourriez vous m'aider à franchir ce palier svp ?

    MON CODE SIMPLIFIE DE LA FENETRE PRINCIPALE


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    from tkinter import *
    from tkinter.messagebox import * # Appel du sous-module boîtes de messages showinfo
     
     
    ###def FenToplevel(): # Fonction  de l'appel command=du même nom
     
        ###???????????????
     
     
    Feneprin = Tk()
    w, h = Feneprin.winfo_screenwidth(), Feneprin.winfo_screenheight()
    Feneprin.geometry("%dx%d+0+0" % (w-15, h))
    Feneprin.title('Titre du Programme')
    Feneprin['bg']='white' # couleur de fond
     
     
    Button(Feneprin,text="Ouvrir la fentre liste", command=FenToplevel).grid()
     
     
    Feneprin.mainloop()
    LE CODE DE LA FENETRE FILLE que je cherche à intégrer dans le précédent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
    from tkinter import *
    from tkinter.messagebox import * # Appel du sous-module boîtes de messages showinfo
     
    ######################################
    ######### Commandes du Menu ##########
    ######################################
     
    def Enregistrer(): # Fonction  de l'appel command=du même nom
        showinfo("Confirmation", "Commande Enregistrer OK!") #test fonction avec une boite message info
     
    def Enregistrersous(): # Fonction  de l'appel command=du même nom
        showinfo("Confirmation", "Commande Enregistrer sous OK!")    #test fonction avec une boite message info
     
    def Apropos(): # Fonction  de l'appel command=du même nom
        #nb=len(LisNom)  #test fonction avec une boite message info
        showinfo("A PROPOS", "Gestion de liste simple, coding: utf-8, D A-B, 12/03/2015")    #test fonction avec une boite message info
     
    def TrilistAZ(): ##### TRI LA LISTE DE CROISSANT
        temp_list = list(LisNom.get(0, END))#Liste temporaire = Liste
        temp_list.sort(key=str.lower)#tri dans l'ordre alphabétique
        LisNom.delete(0, END)#Efface la liste"
        for item in temp_list:#prend toutes les valeurs de la liste temporaire
            LisNom.insert(END, item)#copie dans la liste en partant de la fin
     
    def TrilistZA(): ##### TRI LA LISTE DECROISSANT
        temp_list = list(LisNom.get(0, END))#Liste temporaire = Liste
        temp_list.sort(key=str.lower)#Ordonne la liste temporaire
        LisNom.delete(0, END)#Efface la liste"
        for item in temp_list:#prend toutes les valeurs de la liste temporaire
            LisNom.insert(0, item)#copie dans la liste en partant du début
     
    def DelListe():##### EFFACE LA LISTE
        LisNom.delete(0, END)#Efface toutes les valeurs de la Liste
     
    ##########################################
    ###         COMMANDES FONCTIONS        ###
    ##########################################    
     
    def addEntry () : ##### AJOUTE À LA LISTE LA VARIABLE SAISIE DANS LE CHAMP ENTRÉE
        LisNom.insert(0, ChpNom.get())#colle la variable entrée au début de la liste 
        VarNom.set("")#vide la variable entrée 
     
    def DelIndex(): ##### EFFACE LA SÉLECTION EN COURS DANS LA LISTE
        try:
            index = LisNom.curselection()#calcule l'index de la selection en cours dans la liste
            LisNom.delete(index)#supprime la sélection correspondante
        except IndexError:
               pass
     
    def Modifier(): ##### DÉPLACE LA SÉLECTION EN COURS DANS LA LISTE VERS SAISIE DANS LE CHAMP ENTRÉE
        index = LisNom.curselection() #calcule l'index de la selection en cours dans la liste
        ChpModif = LisNom.get(index) #affecte un nom à l'index correspondant
        ChpNom.delete(0, 100) #supprime tous les cractères du Champ de saisie"
        ChpNom.insert(0, ChpModif)#copie la variable correspondante dans 
        DelIndex() #efface la variable de la liste        
     
    ##########################################
    ###       MISE EN PAGE PRNCIPALE       ###
    ##########################################
     
    W1 = Tk() #Fenêtre principale
    W1.title('LISTE DES PARTICIPANTS') #Titre 
    W1['bg']="#fcfcdc"  # Couleur de fond
    Zon1W1 = Frame(W1) #Zone1 de mise en page 
    Zon1W1.pack() #type de mise page zone1
     
    ##################################
    ######### Barre de Menu ##########
    ##################################
     
    menubar = Menu(W1)
    W1.config(menu=menubar)
     
    menu1 = Menu(menubar, tearoff=0)
    #menu1.add_command(label="Enregistrer", command=Enregistrer)
    #menu1.add_command(label="Enregistrer sous", command=Enregistrersous)
    menu1.add_separator()
    menu1.add_command(label="Quitter", command=W1.quit)
    menubar.add_cascade(label="Sauvegarder", menu=menu1)
     
    menu2 = Menu(menubar, tearoff=0)
    menu2.add_command(label="Vider la liste", command=DelListe)
    menu2.add_command(label="Trier ordre croissant", command=TrilistAZ)
    menu2.add_command(label="Trier ordre décroissant", command=TrilistZA)
    menubar.add_cascade(label="Organiser", menu=menu2)
     
    menu3 = Menu(menubar, tearoff=0)
    menu3.add_command(label="A propos", command=Apropos)
    menubar.add_cascade(label="Aide", menu=menu3)
     
    ##########################################
    ###           CDES FONCTIONS           ###
    ##########################################
     
    TitChpNom = Label(Zon1W1, text = 'Nom : ', anchor= E, width=20) # Titre du champ de saisie NOM
    VarNom= StringVar() # Variable saisie de type texte
    ChpNom = Entry(Zon1W1, textvariable= VarNom, width=70, bg ='#fbfbec', fg='blue')# Champ de saisie Evènement
    b1 = Button(Zon1W1,text="Ajouter à la liste", command=addEntry)
    b2 = Button(Zon1W1,text="Supprimer la sélection",command=DelIndex)
    b3 = Button(Zon1W1,text="Modifier la sélection",command=Modifier)
    ScrListNom = Scrollbar(Zon1W1) #Barre de défilement liste
    ScrListNom.grid(column=2,row=3,sticky= 'WNS') #Position barre de défilement
    LisNom = Listbox(Zon1W1, yscrollcommand=ScrListNom.set, width=70, bg ='#fbfbec', fg='blue', height=10)# Liste
    LisNom.grid(column=1,row=3,sticky= 'W') # Position de la liste
    ScrListNom.config(command=LisNom.yview) # Barre de défilement liste verticale
     
    ##########################################
    ###    MISE EN PAGE CDES FONCTIONS     ###
    ##########################################
     
    Spa1 = Label(Zon1W1).grid(row=0) #Espace1 saut de ligne
    Spa2 = Label(Zon1W1).grid(row=2) #Espace2 saut de ligne
    Spa3 = Label(Zon1W1).grid(row=5) #Espace2 saut de ligne
    TitChpNom.grid(column=0,row=1) #Position du Label
    ChpNom.grid(column=1,row=1,sticky= 'W',columnspan=3) #Position du champ de saisie
    b1.grid(column=2,row=1,padx= 20, sticky= 'W') # Position bouton
    b2.grid(column=1,row=4,sticky= 'E') # Position bouton
    b3.grid(column=1,row=4,sticky= 'W') # Position bouton
     
    W1.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Vous avez au moins 4 soucis de compréhension:
    1. distribuer les fonctionnalités d'un programme entre module principal et modules associés,
    2. variables locales/globales,
    3. programmation d'une interface graphique et/ou pilotée par les événements,
    4. boites de dialogues tkinter,

    Pas facile d'expliquer cela en quelques minutes dans un forum et très contre-productif vu qu'il existe des tutoriels plus ou moins adaptés à vos connaissances que vous pouvez consulter/étudier... Pour démarrer, vous avez le Swinnen, notamment le chapitre 10, ou le tutoriel inclus dans la documentation Python. Pour réaliser une boîte de dialogue, vous avez ceci sur effbot.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Mars 2015
    Messages : 10
    Par défaut
    Message reçu =
    Vous n'avez rien compris
    Trop compliqué pour vous
    Apprenez d'abord à lire
    Revenez nous voir après

    Désolé de vous avoir dérangé, je n'avais pas vu que j'étais dans la cour des GRANDS

    Respectueusement

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Avant de poster, j'ai pris la peine de lire votre code et estimer la quantité de boulot à faire pour réaliser ce que vous souhaitez. Hélas, ce n'est pas possible sans remettre à plat votre code car il n'a pas été construit pour.

    Pour distribuer des fonctionnalités entre plusieurs modules, il faut appliquer un découpage vertical de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from tkinter import *
     
    def create_widget(master=None,...):
         ...
         return widget
     
    if __name__ == '__main__':
         root = Tk()
         w = create_widget(master=root,...)
         w.pack()
         mainloop()
    Le "if __name__ == '__main__':" n'est là que pour permettre de lancer le script en tant que programme principal (main) et pouvoir "importer" la fonction create_widget depuis un autre script.

    Si le code a été sauvegardé dans le script widgets.py on pourra l'utiliser depuis un autre script en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from tkinter import *
    from widgets import create_widget
     
    if __name__ == '__main__':
         root = Tk()
         w = create_widget(master=root,...)
         w.pack()
         mainloop()
    Cela compris, inutile de créer une fonction dans le script "fenêtre principale" mais plutôt dans celui que vous appelez "fenêtre fille". Ce qui n'est pas simple car il n'a pas été pensé pour...

    Programmer s'apprend petit à petit. Les tutos vous permettent de franchir progressivement les difficultés en proposant des solutions permettant de traiter des cas de plus en plus complexes. In fine, savoir programmer, c'est aussi pouvoir anticiper une organisation du code arriver à le construire "par morceaux" qu'on pourra "assembler".

    Avec tkinter (ou n'importe quel autre GUI graphique) faire 2/3 trucs impose l'écriture de beaucoup de lignes qu'il va falloir pouvoir organiser i.e. savoir découper en modules/classes/... C'est intéressant pour montrer l'intérêt de ces constructions mais si vous n'avez pas pris le temps de vous familiariser avec avant, vous allez dans le mur.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Mars 2015
    Messages : 10
    Par défaut
    Bonjour,

    Ce n'est forcément pas très académique mais ça fonctionne.
    Merci pour ces conseils, j'ai beaucoup de difficulté à me défaire de mes souvenirs réflexes de codage MSDOS

    Didier




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    from tkinter import *
    from tkinter.messagebox import * # Appel du sous-module boîtes de messages showinfo
    from tkinter import tix
    import pickle
     
     
    ##########################################
    ###         FENETRE FILLE LISTE        ###
    ##########################################
     
    def OuvrirFF():	
     
    	###FONCTIONS DU MENU###
     
    	def Enregistrer(): # Enregistre la liste
    		global Liste
    		Liste= list(LisNom.get(0, END))
    		CopListe()
    		FListe = open( F+'_Liste.text', 'wb' )
    		pickle.dump(Liste,FListe)
    		FListe.close()		
     
    	#def Enregistrersous(): # Fonction  de l'appel command=du même nom
    		#showinfo("Confirmation", "Commande Enregistrer sous OK!")    #test fonction avec une boite message info
     
    	def Apropos(): # Fonction  de l'appel command=du même nom
    		showinfo(F+'_Liste.txt', "Gestion de liste simple, coding: utf-8, D A-B, 20/04/2015")    #test fonction avec une boite message info
     
    	def TrilistAZ(): #Tri la liste de croissant
    		temp_list = list(LisNom.get(0, END))#Liste temporaire = Liste
    		temp_list.sort(key=str.lower)#tri dans l'ordre alphabétique
    		LisNom.delete(0, END)#Efface la liste"
    		for item in temp_list:#prend toutes les valeurs de la liste temporaire
    			LisNom.insert(END, item)#copie dans la liste en partant de la fin
     
    	def TrilistZA(): ##### TRI LA LISTE DECROISSANT
    		temp_list = list(LisNom.get(0, END))#Liste temporaire = Liste
    		temp_list.sort(key=str.lower)#Ordonne la liste temporaire
    		LisNom.delete(0, END)#Efface la liste"
    		for item in temp_list:#prend toutes les valeurs de la liste temporaire
    			LisNom.insert(0, item)#copie dans la liste en partant du début
     
    	def DelListe():###Efface la liste
    		LisNom.delete(0, END)#Efface toutes les valeurs de la Liste
     
    	###FONCTIONS DES BOUTONS###  
     
    	def addEntry () : ###Ajoute à la liste la variable saisie dans le champ entrée
    		LisNom.insert(0, ChpNom.get())#colle la variable entrée au début de la liste 
    		VarNom.set("")#vide la variable entrée 
     
    	def DelIndex(): ###Efface la sélection en cours dans la liste
    		try:
    			index = LisNom.curselection()#calcule l'index de la selection en cours dans la liste
    			LisNom.delete(index)#supprime la sélection correspondante
    		except IndexError:
    			   pass
     
    	def Modifier(): ###Déplace la sélection en cours dans la liste vers saisie dans le champ entrée
    		index = LisNom.curselection() #calcule l'index de la selection en cours dans la liste
    		ChpModif = LisNom.get(index) #affecte un nom à l'index correspondant
    		ChpNom.delete(0, END) #supprime tous les cractères du Champ de saisie"
    		ChpNom.insert(0, ChpModif)#copie la variable correspondante dans 
    		DelIndex() #efface la variable de la liste        
     
    	###MISE EN PAGE TOPLEVEL###
     
    	W1 = Toplevel() ###Appel Toplevel
    	W1.title('LISTE DES PARTICIPANTS') #Titre
     
     
    	###BARRE DE  MENU###
     
    	menubar = Menu(W1)
    	W1.config(menu=menubar)
     
    	menu1 = Menu(menubar, tearoff=0)
    	menu1.add_command(label="Enregistrer", command=Enregistrer)
    	#menu1.add_command(label="Enregistrer sous", command=Enregistrer)
    	menu1.add_separator()
    	menu1.add_command(label="Quitter", command=W1.destroy)
    	menubar.add_cascade(label="Sauvegarder", menu=menu1)
     
    	menu2 = Menu(menubar, tearoff=0)
    	menu2.add_command(label="Vider la liste", command=DelListe)
    	menu2.add_command(label="Trier ordre croissant", command=TrilistAZ)
    	menu2.add_command(label="Trier ordre décroissant", command=TrilistZA)
    	menubar.add_cascade(label="Organiser", menu=menu2)
     
    	menu3 = Menu(menubar, tearoff=0)
    	menu3.add_command(label="A propos", command=Apropos)
    	menubar.add_cascade(label="Aide", menu=menu3)
     
    	###COMMANDES FONCTIONS###
     
    	TitChpNom = Label(W1, text = 'Nom : ', anchor= E, width=20) # Titre du champ de saisie NOM
    	VarNom= StringVar() # Variable saisie de type texte
    	ChpNom = Entry(W1, textvariable= VarNom, width=70, bg ='#fbfbec', fg='blue')# Champ de saisie Evènement
    	b1 = Button(W1,text="Ajouter à la liste", command=addEntry)
    	b2 = Button(W1,text="Supprimer la sélection",command=DelIndex)
    	b3 = Button(W1,text="Modifier la sélection",command=Modifier)
    	ScrListNom = Scrollbar(W1) #Barre de défilement liste
    	ScrListNom.grid(column=2,row=3,sticky= 'WNS') #Position barre de défilement
    	LisNom = Listbox(W1, yscrollcommand=ScrListNom.set, width=70, bg ='#fbfbec', fg='blue', height=10)# Liste
    	LisNom.grid(column=1,row=3,sticky= 'W') # Position de la liste
    	ScrListNom.config(command=LisNom.yview) # Barre de défilement liste verticale
     
     
     
    	FListe = open( F+'_Liste.text', 'rb' )	
    	templ_list = pickle.load(FListe)
    	LisNom.delete(0, END)#Efface la liste"
    	for item in templ_list:#prend toutes les valeurs de la liste temporaire
    		LisNom.insert(END, item)#copie dans la liste en partant de la fin
     
    	FListe.close()
     
    	###MISE EN PAGE CDES FONCTIONS###
     
    	Spa1 = Label(W1).grid(row=0) #Espace1 saut de ligne
    	Spa2 = Label(W1).grid(row=2) #Espace2 saut de ligne
    	Spa3 = Label(W1).grid(row=5) #Espace2 saut de ligne
    	TitChpNom.grid(column=0,row=1) #Position du Label
    	ChpNom.grid(column=1,row=1,sticky= 'W',columnspan=3) #Position du champ de saisie
    	b1.grid(column=2,row=1,padx= 20, sticky= 'W') # Position bouton
    	b2.grid(column=1,row=4,sticky= 'E') # Position bouton
    	b3.grid(column=1,row=4,sticky= 'W') # Position bouton
     
     
     
    ##########################################
    ###         FENETRE PRINCIPALE         ###
    ##########################################
     
     
    FP = Tk()
    w, h = FP.winfo_screenwidth(), FP.winfo_screenheight() # récupère les dimensions d'affichage système
    FP.geometry("%dx%d+0+0" % (w-15, h)) # ajuste les dimensions de la fenêtre sur celles du système
    FP['bg']='white' # couleur de fond
     
     
     
     
    menubar = Menu(FP)
    menu1 = Menu(menubar, tearoff=0)
    menu1.add_command(label="Ouvrir", command=OuvrirFF)
    menubar.add_cascade(label="FICHIER LISTE", menu=menu1)
    FP.config(menu=menubar)
     
     
    def CopListe(): ###Copie la liste dans la fenetre principale
    		combo.subwidget_list['slistbox'].subwidget_list['listbox'].delete(0, END)
    		for item in Liste:#prend toutes les valeurs de la liste toplevel
    			combo.insert(0, item)#copie dans la liste fenetre principale en partant du début
     
    def Affiche(evt):
        print (varcombo.get()) # affiche  valeur selectionnée dans la combobox
     
    FP.tk.eval('package require Tix')
    varcombo = tix.StringVar() 
    combo = tix.ComboBox(FP, width=70, height=10, editable=1, dropdown=1, variable=varcombo, command = Affiche)
    combo.entry.config(state='readonly')  # Met la zone de texte en lecture seule
    combo.grid(column=2,row=1,sticky= 'W')
     
    P= sys.argv[0] # récupère le chemin complet du module
    FE= P[:-4].split("\\") #découpe le chemin après avoir supprimé .pyw
    F=FE[len(FE)-1] # garde le premier tronçon du chemin
    FP.title(F) # utilise le premier tronçon du chemin comme titre fenêtre
     
    try:
        FListe = pickle.load(open( F+'_Liste.text', 'rb' ))
    except FileNotFoundError:
            FListe = ['Nouveau']
    pass
    pickle.dump( FListe, open( F+'_Liste.text', 'wb' ) )
     
    FListe = open( F+'_Liste.text', 'rb' )	
    Liste = pickle.load(FListe)
    CopListe()
    FListe.close()
     
    FP.mainloop()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récuperer informations d'une fenetre fille
    Par solar01 dans le forum Delphi
    Réponses: 4
    Dernier message: 31/07/2006, 17h39
  2. Creer une fenêtre fille
    Par sylsau dans le forum GLUT
    Réponses: 1
    Dernier message: 24/05/2006, 11h27
  3. MDI - passer un parametre à une fenetre fille
    Par amine245 dans le forum MFC
    Réponses: 8
    Dernier message: 05/04/2006, 16h23
  4. [MFC] Maximiser à l'ouverture une fenetre fille !
    Par leskritiques dans le forum MFC
    Réponses: 15
    Dernier message: 28/04/2004, 08h50
  5. [MDI] Ouvrir immédiatement une fenetre fille
    Par phil56 dans le forum C++Builder
    Réponses: 8
    Dernier message: 12/03/2003, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo