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 :

RAD Builder , Probleme


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut RAD Builder , Probleme
    bonjour, voila petit probleme sur un projet

    jai une erreur a cette endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Canvas->Font->Size = 11;
    Canvas->TextOut(30*PasX,50*PasY," TEST : ");
    Canvas->TextOut(100*PasX,50*PasY,F_pagetest->E_test->Text);

    pourtant il me semblait avoir tout fait correctement :

    La feuille F_pagetest est dans le .cpp Test d'ou l'inclusion de Test.h
    J'ai une acces violation error sur la ligne rouge ...

    Donc si quelqun pourrait me dire ce que jai pas fait ou ce que jai fait de mal ... ?

    merci davance pour votre aide

  2. #2
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Et cette feuille, c'est quoi ?

    Montrez-nous les déclarations.

    À bientôt
    Gilles

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    De quels types sont 'E_test' et 'F_pagetest' ?

    @+
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TF_Test *F_pageTest;
     
    TEdit *E_Test;

    Voila

  5. #5
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Et TF_Test c'est quoi ? Une classe à vous ? Comme l'avez-vous instanciée ? Comment voulez-vous qu'on vous réponde, on ne lit pas dans le marc de café. Si j'écris TOTO *y, on sait que y pointe une instance de TOTO mais ça ne vous dit pas ce qu'est TOTO.

    À bientôt
    Gilles

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    désolé , je pense que là ca devrait etre bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class TF_test : public TForm ... 
    {..............
     
    }

  7. #7
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Si votre forme principale s'appelle F_pagetest et s'il y a un TEdit dessus nommé E_test, ça marche parfaitement, par exemple sur clic d'un bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TF_pagetest::Button1Click(TObject *Sender)
    {
    int PasX,PasY;
     
    PasX=1;
    PasY=1;
    Canvas->TextOut(100*PasX,50*PasY,F_pagetest->E_test->Text);
    }
    Cela dit, vous savez, on n'écrit pas trop sur la forme principale, elle n'est pas faite pour ça.

    À bientôt
    Gilles

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Non , comme dit dans le 1er post , cest dans une Form secondaire
    c'est aussi pour ça que j'inclus le header , Test.h

  9. #9
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Donc, si je comprends bien, vous invoquez de la fenêtre principale une fenêtre secondaire nommée F_pagetest, dans ce cas, il ne faut pas dire Canvas mais F_pagetest->Canvas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    
    F_pagetest->Canvas->TextOut(100*PasX,50*PasY,F_pagetest->E_test->Text);
    Car un composant est censé se situer dans la classe par défaut, sinon il faut préciser la classe où il se trouve.

    À bientôt
    Gilles

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    non , F_pageTest est la feuille principale ... ( on pose F_pagetest2 pour la feuille secondaire )

    la feuille secondaire est creer suite au clic sur un bouton de la feuille principal
    la feuille principale nest bien entendue pas fermée

    en fait ya un Edit dans la feuille principale et je veux imprimer le contenu de l'edit sur la page secondaire

    c'est ce que j'essais de faire dans le code du post1 mais le code ne marche pas ( " violation d'acces comme ereur )

  11. #11
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    je veux imprimer le contenu de l'edit sur la page secondaire
    Mais d'où vient l'ordre ?

    S'il vient de la forme principale pour écrire sur la forme secondaire, vous devez préfixer le Canvas du nom de la fenêtre secondaire.

    Si depuis A, vous écrivez Canvas, cela équivaut à A->Canvas mais si depuis A, vous voulez accéder au Canvas de B, vous devez écrire B->Canvas.

    À bientôt
    Gilles

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_pagetest2->canvas..............->F_pagetest->E_test->text
    avec test2 secondaire et test principale ( feuille ) ?
    jai essayé et tjs accès violation

  13. #13
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Je vous ai posé une question : d'où vient l'ordre ?

    Quand est-il déclenché ? Qu'est-ce qui le déclenche ?

    Si c'est un bouton sur la Forme principale, il faut préfixer Canvas par le nom de la forme secondaire. Partez d'un projet vide et faites l'essai, ça va marcher immédiatement.

    À bientôt
    Gilles

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Le bouton de la feuille principale sert juste a creer la feuille secondaire ....
    Un bouton sur cette derniere declenche limpression sur elle meme ...

  15. #15
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Mais cette feuille secondaire est créée comment ? Vous la créez par programme ou à la conception ? Ce n'est pas pareil. Dans le premier cas, le bouton la crée par new, dans le second, comme elle existe déjà, on la rend juste visible.

    C'est quand même incroyable que sur un problème élémentaire de ce genre, il faille vous psoer autant de questions pour savoir quel est votre environnement. Au plus vous êtes clair dans une question, au plus vous avez de chance de réponse.

    À bientôt
    Gilles

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application->CreateForm(__classid(TF_test2), &F_pagetest2);
    voila comment est crée la feuille ... apres clic sur un bouton

  17. #17
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Ce sont des instructions de C++ Builder et non pas des instructions utilisateur.

    Le mieux est de créer la forme à la conception et de la rendre visible sur clic du bouton, c'est plutôt ainsi qu'on procède.

    Par programme, c'est plus compliqué surtout que vous devez mettre des composants sur cette fenêtre. Mais c'est faisable aussi.

    Vous avez un problème d'accès au composant que vous n'aurez plus si vous créez la fenêtre à la conception (Fichier->Nouveau->Fiche).

    À bientôt
    Gilles

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Bah pour creer la feuille je l'ai bien fait par conception enfin je vois pas trop le rapport

    j'ai fais nouvelle fiche , puis je l'ai nommée F_pagetest2

    bref

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TF_pagetest ::B_TestClick(TObject *Sender)
    {
     
            Application->CreateForm(__classid(TF_pageTEST2), &F_pagetest2);
            F_pagetest2->Show();
    Au clic sur le bouton , voila ce qui ce passe ( DANS LA FEUILLE SECONDAIRE ), donc apres je fais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     int PasX = Width/198;
            int PasY = Height/283;
            //Préparation de l'impression sur la feuille
     
     
           Canvas->Rectangle(0,0,PasX,PasY);
     
            Canvas->Font->Size = 11;
     
            Canvas->TextOut(30*PasX,50*PasY,"test :");
            Canvas->TextOut(100*PasX,50*PasY,F_pagetest->E_Test->Text);
    Voila ce que j'explique depuis tout a l'heure , je me fais sans doute mal comprendre .... ( 1er programme sous cet environnement )

  19. #19
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Vous dites que c'est un bouton sur la forme secondaire qui déclenche l'affichage. Comment ce bouton vient-il sur cette forme ?

    On ne procède pas ainsi. Si vous voulez créer une forme secondaire par logiciel, il faut la créer par new.

    Si vous voulez, je vous montre un exemple sinon on n'est pas arrivé.

    à bientôt
    Gilles

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    Le bouton je l'ai rajouté simplement en cliquant sur Button et en le placant sur la feuille

    je vois pas ce qui va pas avec ca mais bon ...
    Estce possible de resoudre mon probleme avec le code que j'ai mis ci dessus ?

Discussions similaires

  1. ouverture d'une appli Builder Probleme violation d'acces
    Par jamescook dans le forum C++Builder
    Réponses: 0
    Dernier message: 07/01/2008, 09h39
  2. Réponses: 1
    Dernier message: 16/10/2007, 18h15
  3. RaveReport & C# Builder probleme de "using"
    Par SubZero2 dans le forum Rave
    Réponses: 2
    Dernier message: 13/12/2006, 09h20
  4. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  5. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 13h40

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