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 :

Problème de paramètres entre form


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut Problème de paramètres entre form
    Bonjour,

    J'ai un petit problème pour modifier les caption des labels et des boutons d'une form à partir de la form principal :

    Je fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Form3->Label1->Caption = "MonMessage";
    ou ca pour un bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Form3->Button1->Caption = "NomDuBouton";
    Il ne me fait pas d'erreur de compilation mais il me met un message d'erreur lors de l'execution (voir erreur en piece jointe)

    Merci
    Images attachées Images attachées  

  2. #2
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Est-ce que ta Form3 est déjà chargée ?

    lanonyme

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    j'ai eu un pb semblable que j'ai resolu ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          // on affiche la fenetre d'attente
          Form_attente->Visible=true;
          Form_attente->Label_message->Visible= false;
          Form_attente->Label_traitement->Visible=true;
          Form_attente->Repaint();
          Form_attente->Show();
    je voulai changer l affichage du label_message mais j'avai meme erreur que toi
    du coup j'ai fait un 2e label et je cache le label dont je ne veux pas a l'instant t.

  4. #4
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Plus exactement, en fait :

    Mon programme et pour le moment en 2 langues (italien et francais)
    J'ai donc crée un evenement ItalienClick et un autre FrançaisClick

    Au demarrage je lui simule un un ItalienClick (qui doit etre la langue d'origine) de la maniere suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ItalianoClick(this);
    Et c'est dans cette traduction italienne qu'il me met cette erreur d'access violation.
    J'ai donc mis en commentaire tous les traductions qui posait problèmes et je les ait laissé seulement dans l'évenement FrançaisClick.
    Et cette fois ca fonctionne (seulement la traduction française).

    Donc je pense que le problème doit venir de ItalinoClick(this) mais je ne vois pas comment le régler

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    tu peux detourner le pb en creant une procedure ItalianoClickSimul qui reprend tout le code que tu as pour l evenement ItalianoClick et tu passe cette procedure a ItalianoClick et lors du demarrage

  6. #6
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par lanonyme
    Bonjour,

    Est-ce que ta Form3 est déjà chargée ?

    lanonyme

    Heu!!! je sais pas.
    Normalement oui je l'ai inclue dans mes en-tete .h au tout debut.

    Il y a autre chose ò faire ?

  7. #7
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par mike600river
    tu peux detourner le pb en creant une procedure ItalianoClickSimul qui reprend tout le code que tu as pour l evenement ItalianoClick et tu passe cette procedure a ItalianoClick et lors du demarrage

    Il me met la meme erreur mais cette fois-ci dans la procédure que j'ai crée

  8. #8
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Citation Envoyé par Furlaz
    Heu!!! je sais pas.
    Normalement oui je l'ai inclue dans mes en-tete .h au tout debut.

    Il y a autre chose ò faire ?
    l'include des entete dans le .h permet de faire connaitre la form a une autre form

    Soit ta form existe( Projet->Options, Onglet Fiches : Fiches créées automatiquement) soit il faut la crée toi même.

    Mais si ta traduction francais marche, c'est que cela ne viens pas de ça

    lanonyme

    EDIT :
    Quand tu dis :
    Au demarrage je lui simule un un ItalienClick (qui doit etre la langue d'origine) de la maniere suivant :
    Tu met ça au dans le FormCreate de ta form ??

  9. #9
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Le problème vient vraiment du click que je simule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ItalianoClick(this);
    Car si je le met en commentaire le programme fonctionne parfaitement

    Ne faut il pas que je desaloue de la mémoire ou je ne sais quoi (quelque chose dans le genre) ?

    Merci

  10. #10
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    ça fait quoi si:
    tu fait rien au demarrage, tu click pour mettre en francais puis tu click pour mettre en italien?

  11. #11
    Membre éprouvé
    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
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    Si la compilation ne détecte pas d'erreur, il n'y a pas de raison que ta fonction cause ce genre de problème, mais je me trompe peut être, vu que je connais pas ton code.

    Je rejoins plus l'idée de départ de lanonyme.
    Lorsque tu mets un point d'arret sur cette ligne, et que tu regardes "Form3" la variable qui contient le pointeur de la form, s'il affiche :FFFFFF, c'est que ta fenêtre n'existe pas.

    Sinon, quel est la déclaration de ItalianoClick? Quand y fais tu appelles?

  12. #12
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par mike600river
    ça fait quoi si:
    tu fait rien au demarrage, tu click pour mettre en francais puis tu click pour mettre en italien?
    L'entreprise ou je travail est italienne (à Rome) donc le logiciel il le veulent en italien mais en supplément (pour montrer par exemple à mon iut) je le veux aussi en français.

    Mais il faut que d'origine il soit en italien comme le veut l'entreprise, enfin c'est mieux

    Mais il est vrai qu'en faisant francais puis italien ca marche tres bien

  13. #13
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    Citation Envoyé par Furlaz
    Le problème vient vraiment du click que je simule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ItalianoClick(this);
    Car si je le met en commentaire le programme fonctionne parfaitement

    Ne faut il pas que je desaloue de la mémoire ou je ne sais quoi (quelque chose dans le genre) ?

    Merci
    Ou simule tu cette fonction ?
    Si c'est dans le FormCreate de ta form, je pense que l'erreur vient de la, car la form n'existe pas encore.
    Dans ce cas, il faut mettre l'appel dans le FormShow

    lanonyme

  14. #14
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    je te disais de ne rien mettre au departpr cerner le pb, pr voir si c est la fct le pb ou l'endroit ou tu l'appelle
    ici 2e cas
    fais comme lanonyme vient de dire je pense aussi que c la solution

  15. #15
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par bandit boy
    Sinon, quel est la déclaration de ItalianoClick? Quand y fais tu appelles?
    La déclaration de ItalianoClick est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void __fastcall ItalianoClick(TObject *Sender);
    c'est un événement, qui est utilisé lorsque je clique dans mon menu Langue puis Italiano et que j'appelle aussi au début par :

    Sinon j'ai exactement le meme evenement pour passer en francais et il fonctionne tres bien.

    Le problème ne vient pas de la Form3 je pense ! mais bien de cette simulation de click au début


  16. #16
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par lanonyme
    Ou simule tu cette fonction ?
    Si c'est dans le FormCreate de ta form, je pense que l'erreur vient de la, car la form n'existe pas encore.
    Dans ce cas, il faut mettre l'appel dans le FormShow

    lanonyme

    Oki je vois ce que tu veux dire pour le moment je l'avais mis ainsi :

    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
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
     ItalianoClick(this);
     modif = 0;
    
     Session->Open();               // Ouvre la session de connexion
     DataBase->Open();              // Ouvre la base de donnée associée
     TBVisit->Open();               // Ouvre la table des visiteurs
     TBConsul->Open();              // Ouvre la table des consultants
    
     /* Activation des tables */
     TBVisit->Active = true;
     TBConsul->Active = true;
    
     /* Mise à jour des tables */
     TBVisit->Refresh();
     TBConsul->Refresh();
    }
    Il faut donc que je le mette plus loin ? mais je vois pas trop ou ?

  17. #17
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    met le sur l'evenement OnFormShow de ta form

  18. #18
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    La fonction etant dans le constructeur, ta form n'est pas encore créer d'ou l'erreur

    Il faut que tu la mette dans le l'evenement OnShow de ta form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void __fastcall TForm2::FormShow(TObject *Sender)
    {
    ItalianoClick(this);
    }
    Et il ne devrai plus y avoir de probleme

    lanonyme

  19. #19
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Et bien je n'ai qu'un seul mot à dire : MERCI

    Effectivement ca marche très bien maintenant

    Ciao a tutti e grazie mille

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

Discussions similaires

  1. Problème passage de paramètre entre form
    Par Zhamy dans le forum C#
    Réponses: 5
    Dernier message: 03/05/2010, 17h30
  2. Problème de navigation entre forms vb.neyt
    Par vérokit dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/03/2008, 07h39
  3. Passage de paramètres entre form
    Par thierry007 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/02/2007, 12h21
  4. [Forms 6i] Passage de paramètres entre forms
    Par tmcgrady dans le forum Forms
    Réponses: 8
    Dernier message: 18/03/2006, 03h04
  5. [Forms]Passage de paramètre entre Forms et Reports
    Par jack554 dans le forum Reports
    Réponses: 4
    Dernier message: 30/03/2004, 13h58

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