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 :

Modifier un objet sur un Form2 à partir du code d'un Form1 de même projet


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 35
    Points
    35
    Par défaut Modifier un objet sur un Form2 à partir du code d'un Form1 de même projet
    Bonjour tout le monde,
    Voila je pense que j'ai tout expliqué dans le titre mais je reprécise :
    Dans un même projet, Je voudrais modifier les propriétés d'un TLabel qui se trouve dans mon Form2 et ça à partir du code de mon Form1 (dans le Unit1.cpp)

    Merci d'avance!

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Tu inclus le le .h du TForm2 dans le Tform1 .

    Puis tu procèdes de la manière la plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form2->Label1->Caption ="...";
    ou form2 est le nom de ta fenêtre form2.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Merci Kurkaine,
    Bon maintenant un peu plus dur, J'utilise l'opérateur dynamic_cast pour varier les valeurs de mêmes propriétés de, par exemple, mes labels. Donc mon problème maintenant c'est d'accèder à mes labels qui se trouve dans mon Form2 grâce à ce opérateur dynamic_cast qui lui est dans le code de Form1, j'explique sur un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //dans le code de mon Form1 
    TLabel *Test;        //Définir un pointeur pour mes objets type Label
     
    //// Indexer les objets TLabel /////////////////////////////////////////
    Label1->ComponentIndex=1;
    Label2->ComponentIndex=2;
     
    //// attribuer une valeur à un label en fonction d'un indice (ComponentIndex)//////////
    Test = dynamic_cast<TLabel *>(Components[1]);    //sélectionner Label1
    Test->Caption= etc...
    On va dire que j'ai un deuxième Label1 dans mon Form2 et je souhaite y accèder grâce à ce même opérateur dynamic_cast qui se trouve dans mon Form1.

    Comment faire?

    Merci d'avance

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Et ça ne marche pas si tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form2->Label2->ComponentIndex=2;
    Je t'avoue que je n'ai jamais utilisé ComponentIndex, et ça m'a l'air bien mysterieux, mais cela dit je ne vois pas ce que ça change que tu travailles sur un composant TLabel se trouvant ou non sur la même fiche.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Voici les cas que j'ai essayé qui n'ont pas abouti :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //// mettre un 2ème pointeur
    TLabel *Test;
    Form2->TLabel *Teste; //marche pas 
    //ou
    TForm2->TLabel *Teste; //marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //// comme tu m'as dis
    Label1->ComponentIndex=1;
    Form2->Label1->ComponentIndex=2;   //marche pas (sinon ça sera trop facile (lol))
    //ou
    TForm2->Label1->ComponentIndex=2;   //marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //// faire des bricoles de genre :
    Test = dynamic_cast<TLabel *>(Components[1]);    //sélectionner Label1
    Test = Form2->dynamic_cast<TLabel *>(Components[1]);    //marche pas, TForm2 nonplus
     
    //etc. etc.
    Mais j'ai pensé aussi, je voudrais savoir s'il est possible de mettre une variable globale par rapport à mes deux Forms...tu vois ou je veux en venir?

  6. #6
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par Akeon
    Mais j'ai pensé aussi, je voudrais savoir s'il est possible de mettre une variable globale par rapport à mes deux Forms...tu vois ou je veux en venir?
    Oui c'est possible, tu y accèdes de la même façon que les composants:
    Form2->Variable

  7. #7
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    J'avoue que j'ai pas très bien compris ce que tu veux faire !?

    Je tente :

    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
     
     
    void AccederANImporteQuelleLabel(TLabel* Label)
    {
    Label->Caption="toto";
    //etc comme tu le dis
    }
     
     
     
    //et l'appel se fait par :
     
    AccederANImporteQuelleLabel(Label1);
     
    AccederANImporteQuelleLabel(Form1->Label1);
     
    AccederANImporteQuelleLabel(Form2->Label1);
     
    //etc...
    C'est pas ce que tu cherche ?

    A+

Discussions similaires

  1. modifier l'objet d'une page à partir de son iframe
    Par jamy1664 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/07/2007, 16h29
  2. remplir une datagrid du form2 à partir d un boutton de form1
    Par andres007 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 19/02/2007, 02h30
  3. Réponses: 3
    Dernier message: 20/01/2007, 09h54
  4. Réponses: 2
    Dernier message: 11/01/2007, 12h00
  5. Réponses: 6
    Dernier message: 21/05/2006, 20h37

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