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

Composants VCL Delphi Discussion :

Création composant dynamiquement


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de valoji
    Inscrit en
    Septembre 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Septembre 2005
    Messages : 124
    Par défaut Création composant dynamiquement
    Bonjour,

    Voilà je créer plusieurs onglets, je nomme celui : TabControl + I.
    Dans mon code je veut appeller Tabcontrol5 ou tabcontrol6 etc.. Mais je ne peut car il me fait une erreur : Identificateur non déclaré -> ce qui est normal.

    Je voudrais savoir comment faire pour déclarer mes objets au fur et à mesure que je construis mes onglets (Sachant que je ne sais pas combien d'onglet je peut avoir). C'est la première fois que je développe comme cela.

    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
     
    const
      TabCount = 10;
    var
      I: Integer;
      TabControl: TcxTabSheet;
      TestGrid : TcxGrid;
      Lab : TLabel;
      ch : string;
    begin
    ...
    for i := 0 to TabCount - 1 do
      begin
        //Onglet
        ch := 'Test' + IntToStr(I);
        TabControl := TcxTabSheet.Create(self);
        with TabControl do
        begin
            PageControl := cxPageControl1;
            Name := 'TabControl' + IntToStr(I);
            pagecontrol.ActivePage := TabControl;
     
            Caption := 'Tab ' + IntToStr(I);
        end;
        //TcxGrid
        testgrid := TcxGrid.Create(self);
        with TestGrid do
        begin
           Parent := TabControl;
           Top := 50;
           Width := 100;
           Height := 50;
        end;
        //Label
        Lab := TLabel.Create(self);
        with Lab do
        begin
           Parent := TabControl;
           Top := 8;
           Width := 100;
           Height := 50;
           Caption := Ch;
        end;
      end;
      cxPageControl1.ActivePage := Tabcontrol5;
    J'espère avoir été clair.
    Merci pour votre aide
    Valoji

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Utilise FindComponent, remplace donc la dernière ligne par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      cxPageControl1.ActivePage := TcxTabSheet(FindComponent('Tabcontrol5'));
    @+ Claudius

  3. #3
    Membre confirmé Avatar de valoji
    Inscrit en
    Septembre 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Septembre 2005
    Messages : 124
    Par défaut
    Merci pour ta réponse, elle me convient parfaitement.

    Bonne Journée à tous.
    Valoji.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    En voyant ton code et à moins qu'il n'y ait une utilité pratique à nommer les onglets, tu pourrais aussi les activer par leur index:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cxPageControl1.ActivePage := TcxTabSheet(FindComponent('Tabcontrol5'));
     
    //égale à
     
    cxPageControl1.ActivePageIndex := 5;

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

Discussions similaires

  1. [FLASH MX] Nom de composant dynamique
    Par bobgeldof7 dans le forum Flash
    Réponses: 2
    Dernier message: 12/11/2004, 23h07
  2. [C#] OnPaint(PaintEventArgs e) sur création Composant
    Par pc152 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/08/2004, 16h13
  3. Création composant et BD
    Par gibet_b dans le forum Composants VCL
    Réponses: 6
    Dernier message: 07/07/2004, 15h03
  4. [THandle][DLL] Composant dynamique et THandle
    Par el_diablos dans le forum Langage
    Réponses: 10
    Dernier message: 01/07/2004, 15h01
  5. [JTabbedPane] Accès à des composants dynamiques
    Par SamRay1024 dans le forum Composants
    Réponses: 8
    Dernier message: 26/05/2004, 13h04

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