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 :

Creation dynamic de TabSheet


Sujet :

C++Builder

  1. #1
    Membre confirm� Avatar de saidus
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    166
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48

    Informations forums :
    Inscription : Octobre 2004
    Messages : 166
    Par d�faut Creation dynamic de TabSheet
    Bonjour!!!
    Pour Creer un nouveau TabSheet en RunTime j'ecris le code sur le Click d'un TButton:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
        TTabSheet *t = new TTabSheet(PageControl1);
        t->PageControl = PageControl1;
        .....
    et ca marche a merveille ...
    maintenant le Pblm est de Comment Fermer un TabSheet quelconque et en liberant la memoire allouer pour ...
    j'utilise le code avec :
    mais bien sur ca ne peux pas marcher
    Alors ... pourrai je avoir ce code ...
    Merci d'avance ...

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut
    Ne faudrait-il pas �crire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     TTabSheet *t = new TTabSheet(this);
        t->PageControl = PageControl1;

  3. #3
    Membre confirm� Avatar de saidus
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    166
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48

    Informations forums :
    Inscription : Octobre 2004
    Messages : 166
    Par d�faut
    Bonjour ...
    Que faut il faire alors ..
    j'ai essayer le Code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
                     TTabSheet *tb = new TTabSheet(PageControl1/*this*/);
                      tb->PageControl = PageControl1;
    et ca marche, a chaque fois que je clic sur le Btn qui execute le code precedant il ya une nouvelle Tabsheet qui ce Cree..
    Maintenant le Probleme pour moi est de Fermer (Close) une TabSheet quelconque (qu'on veux) comment faut il faire

  4. #4
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonjour,

    Perso, je pense que tu devrais essayer de sp�cifier un 'Name' particulier (et unique �videmment) pour chaque TTabSheet cr�e.
    Ainsi, on pourrait imaginer qqchose comme:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    TTabSheet *ts = dynamic_cast < TTabSheet*> (this->FindComponent("Name_du_TTabSheet"));
    Et ainsi, faire ce que tu veux avec l'objet ainsi r�cup�r� ...

    A tester et corriger car je ne suis pas dans l'EDI la ...

    Pour la conception, je suivrais ce que pr�conise Pasqualini

    Bon courage,
    @+

  5. #5
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut saidus:
    J'ai fait simplement ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    TabSheet1->~TTabSheet();
    }

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Avec un TPageControl, pour ajouter un TTabSheet :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    TTabSheet *T = new TTabSheet(this);
    T->PageControl = PageControl1;
    PageControl1->ActivePage = T;
    Pour supprimer la page active :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    if(PageControl1->ActivePage != NULL)
        {
        delete PageControl1->ActivePage;
        if(PageControl1->PageCount == 0) PageControl1->ActivePage = NULL;
        else PageControl1->ActivePage = PageControl1->Pages[PageControl1->PageCount-1];
        }
    Pour suprimer n'importe quelle page :

    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
     
    int Page = 2; // pour l'exemple
    if((Page >= 0) && (Page < PageControl1->PageCount))
        {
        delete PageControl1->Pages[Page];
        //Ici, on va activer la page qui suit celle qui a été supprimée
        if(Page != PageControl1->PageCount)
            {
            PageControl1->ActivePage = PageControl1->Pages[Page];
            }
        else
            {
            //Comme la page était la dernière,
            //on cherche à activer la page qui précéde celle qui a été supprimée
            if(PageControl1->PageCount != 0)
                {
                PageControl1->ActivePage = PageControl1->Pages[Page-1];
                }
            else
                {
                PageControl1->ActivePage = NULL;
                }
            }
        }
    Pour l'ensemble des cas, on peut �videmment mettre en place un protocole d'activation diff�rent.

    A plus !

  7. #7
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,
    j'ajoute juste une pr�cision, un composant ne peut pas se "sucider", c'est a dire que le delete du TTabSheet ne peut pas �tre situ� dans le code de ce TTabSheet ou d'un composant lui appartenant.

Discussions similaires

  1. Creation d'un Manifest Http Dynamic Streaming
    Par dubis dans le forum Langage
    R�ponses: 4
    Dernier message: 27/05/2013, 14h14
  2. Cree un Dynamic treeview dans un Tabsheet
    Par kanzarih dans le forum Delphi
    R�ponses: 3
    Dernier message: 26/05/2007, 10h27
  3. Creation projet Web dynamic
    Par menuge dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 10/10/2006, 15h27
  4. Pb de creation et destruction de tabsheet dynamique
    Par Unformatic dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 28/04/2006, 14h09
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    R�ponses: 4
    Dernier message: 30/05/2002, 12h36

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