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 :

Comment récupérer la valeur d'un composant d'une form


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Comment récupérer la valeur d'un composant d'une form
    salut a tous,

    Dans une application MDI, comment peut on récuperer dans une form child la valeur d'un composant situé sur une autre form child?

    par exemple j'ai un bouton sur formMDIChild1 qui doit m'afficher le contenu d'un label situé sur formMDIChild2, j'ai tapé ShowMessage(formMDIChild2.Label1.Caption); ça me donne une violation d'acces.

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Je ne sais pas si je réponds à ta question, j'ai lu en diagonale...

    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
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    caption:=Form2.Lab.Caption;
    end;
     
     
     
    end.
    dans l'autre fiche :
    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
     
    type
      TForm2 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
        Lab:TLabel;
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    uses Unit1;
     
    {$R *.dfm}
     
     
    procedure TForm2.FormCreate(Sender: TObject);
    begin
    Lab:=TLabel.Create(self);
     
     with Lab do
      begin
        parent:=Form2;
        caption:='je passe mon contenu'
      end;
    end;
     
     
    end.
    C'est de l'encapsulation ton problème non.

    Tu places en public un label en le créant dynamiquement...

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    salut,
    J'ai testé mais ça n'a pas marché, toujours la même exception de violation.
    c'est surement un problème d'encapsulation, et je sais pas comment le dépasser.

    Peut-être si j'utilise des variables globales ça résoudra le problème.

    Merci

  4. #4
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Personnellement, je l'ai testé avant de te l'envoyer... Je n'ai pas eu de soucis...
    Il n'y a pas de raison pour que ça ne fonctionne pas ! Le problème est ailleurs...

    Tu as bien déclarer en public ton label créé dynamiquement ?

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Oui, bien sur. j'ai aussi crée une function publique "get_Caption" pour récupérer la valeur et ça me donne la même erreur.

    je m'en ai sorti en utilisant une variable globale.

    je te remercie.

  6. #6
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Citation Envoyé par NacerAli Voir le message
    Oui, bien sur. j'ai aussi crée une function publique "get_Caption" pour récupérer la valeur et ça me donne la même erreur.

    je m'en ai sorti en utilisant une variable globale.

    je te remercie.
    ??, dans les uses, tu fais bien référence à tes unités utilisées ?

    @+ (sinon, n'oublie pas le:)

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  2. Réponses: 20
    Dernier message: 02/05/2010, 16h56
  3. Réponses: 21
    Dernier message: 18/11/2008, 14h36
  4. Réponses: 4
    Dernier message: 07/10/2008, 17h05
  5. Réponses: 3
    Dernier message: 07/06/2007, 19h47

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