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

Delphi Discussion :

création de TabSheet dynamiquement


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut création de TabSheet dynamiquement
    bonjour j'ai créé dynamiquement dans un projet VCL un TPageControl et je souhaite lui ajouter dynamiquement des TabSheet a l'appui sur un bouton.
    Je suis allé voir la fac et j'ai trouver ce programme:
    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
     
    var 
      tbs : TTabSheet; 
    begin 
      //On s'assure que Self est un descendant de TComponent
      assert(Self is TComponent, 'L''objet Self n''est pas un descendant de TComponent');
      // Création de la page
      tbs := TTabSheet.Create(Self); 
      // Création du contenu de la page
      with TFrame2.Create(self) do 
      begin 
        // Attention, chaque frame doit avoir un nom différent
        Name := 'Frame2' + intToStr(PageControl1.PageCount); 
        Align := alClient; 
        Parent := tbs; 
      end; 
      // Ajout de la page au TPageControl
      tbs.PageControl := PageControl1; 
      // Modification du titre de l'onglet
      tbs.Caption := 'Frame n°' + intToStr(PageControl1.PageCount); 
    end;
    je trouve ca plutot compliqué et ne comprend pas l'utilité d'utiliser une frame...
    Quelqu'un a t il une méthode plus simple a me proposer?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    bonjour,

    disons que tbs := TTabSheet.Create(Self); suffit à créer une tabsheet, tbs.PageControl := PageControl1; suffit à l'affecter au pagecontrol.
    Mais tu as une page vide ! Il faut ensuite y placer dynamiquement tes composants. Donc l'utilité d'une frame s'impose rapidement puisqu'elle te permet de composer ta page, avec les events et tout et tout qui va bien et que tu peux la créer dynamiquement pour la placer sur ta nouvelle page.

    @++
    Dany

Discussions similaires

  1. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 00h33
  2. Introspection et création de code dynamiquement ?
    Par elitost dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 17/10/2005, 22h43
  3. [TPageControl] Ajouter un tabsheet dynamiquement
    Par qi130 dans le forum Langage
    Réponses: 6
    Dernier message: 29/09/2005, 20h57
  4. Problème avec création de fenêtre dynamique
    Par FredericB dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/09/2005, 17h21
  5. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00

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