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

C++Builder Discussion :

Suppression de bouton [Trucs & Astuces]


Sujet :

C++Builder

  1. #1
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut Suppression de bouton
    Salut à tous !!

    j'ai une petite question

    je crée plusieurs bouton de cete manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            but[cpt] = new TButton(Application);
            check[cpt] = new TCheckBox(Application);
    Et j'aimerai pouvoir suppriemr tous les boutons !! Est-ce possible, si oui comment faire ?
    @@++

  2. #2
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut
    Bonjour,

    La méthode classique est de parcourir ton Tableau (en partant de la fin, pour être sûr ...) et d'effectuer un delete sur chacun des boutons, ou bien de les placer dans un conteneur commun (classiquement un TPanel) et donc se servir du Parent.

    Depuis peu, j'utilise une autre méthode (pas très sofistiquée, mais j'y avais pas pensé avant ) :
    Je crée dynamiquement un TPanel invisible, et j'en fait le propriétaire de mes boutons (propriété Owner à la construction).
    but[cpt] = new TButton(Conteneur);
    Pour tout détruire, tu fais delete Conteneur, puis tu le recrées pour poursuivre.

    C'est une caractéristique des objets de détruire les objets qu'ils possèdent lorsqu'eux-même sont détruits.

    Bonne Continuation,
    Mathieu
    Développeur confirmé C++, Java, Python, JS.

  3. #3
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Alors j'ai essayer cette methode mais cela ne fonctionne pas :

    Tout d'abord je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            TPanel* conteneur;
            but[cpt] = new TButton(conteneur);
            check[cpt] = new TCheckBox(Application);
    Ensuite je donne quelque propriété au bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            but[cpt]->Parent = this;
            but[cpt]->Height = 25;
            but[cpt]->Width = 100;
    Ensuite je delete tout les boutons


    Qu'est ce qeu je fait de faux ? car lors ce que j'effectue la suppression les boutons ne disparaissent.
    @@++

  4. #4
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Citation Envoyé par Seboubou86
    Alors j'ai essayer cette methode mais cela ne fonctionne pas :

    Tout d'abord je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            TPanel* conteneur;
            but[cpt] = new TButton(conteneur);
            check[cpt] = new TCheckBox(Application);
    Il ne faut pas oublier de créer l'objet conteneur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    conteneur = (TPanel*) new TPanel(Application);
    Nicolas

  5. #5
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    super merci sa focntionne !!

    j'aurai juste encore une question de compréhension pourquoi lorsque je fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    conteneur = (TPanel*) new TPanel(Application);
    cela marche aussi bien que si je fait cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    conteneur = new TPanel(Application);
    quel est la différence entre les deux ??
    @@++

  6. #6
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut
    Bonsoir,

    Citation Envoyé par Seboubou86
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conteneur = (TPanel*) new TPanel(Application);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conteneur = new TPanel(Application);
    quel est la différence entre les deux ??
    Nicolas a sans doute adapté la syntaxe du C de malloc ...

    En effet, malloc alloue la mémoire, et retourne un pointeur (void *) que l'on doit transtyper (on fait un "cast").

    Par contre, new TPanel(Application) renvoit un pointeur sur un objet TPanel (soit un TPanel *)
    Il est donc inutile de caster ce pointeur ...
    ... mais ce n'est pas faux, donc les deux méthodes marchent.

    Bonne Continuation,
    Mathieu
    Développeur confirmé C++, Java, Python, JS.

  7. #7
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 207
    Points : 133
    Points
    133
    Par défaut
    Super !!
    Merci à tous pour toutes ces solutions et explication !!!

    Bonne journée
    @@++

  8. #8
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Alacazam
    Bonsoir,

    Nicolas a sans doute adapté la syntaxe du C de malloc ...

    En effet, malloc alloue la mémoire, et retourne un pointeur (void *) que l'on doit transtyper (on fait un "cast").

    Par contre, new TPanel(Application) renvoit un pointeur sur un objet TPanel (soit un TPanel *)
    Il est donc inutile de caster ce pointeur ...
    ... mais ce n'est pas faux, donc les deux méthodes marchent.
    Exact, une vieille habitude...

    Nicolas

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

Discussions similaires

  1. Génération/suppression de boutons entre 2 GUIs
    Par tarzan_tlse dans le forum Interfaces Graphiques
    Réponses: 9
    Dernier message: 11/08/2009, 10h54
  2. Réponses: 6
    Dernier message: 19/05/2008, 17h42
  3. [ToolBar] Problème lors d'ajout/suppression de boutons
    Par joeln3 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/09/2007, 15h21
  4. [VBA-E] suppression de boutons
    Par alorse dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 23/04/2007, 19h08
  5. Suppression de bouton / rafraichissement
    Par Nemesis007 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2007, 08h45

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