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 :

Creation de fiche dynamique [FAQ]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 21
    Points : 22
    Points
    22
    Par défaut Creation de fiche dynamique
    Qqun serait me dire comment appeller une fiche dynamiquement ??

    Je m'explique...j ai cree une nouvelle classe ds mon .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class TTruc : public TCustomForm{
      private :
        //.....
      public :
        TTruc(TComponent* AOwner, int x);
    }
    et ds mon .cpp .. j ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TTruc::TTruc(TComponent* AOwner, int x)
          :TCustomForm(AOwner)
    {
    //initialistion de ma fiche
    }
    Maintenant je voudrais creer cette fiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TTruc *tmp = new TTruc(??????????); //<--- mon probleme !!!
    Je dois mettre quoi comme AOwner ???

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Tu peux mettre l'instance de ta fiche par exemple, ce sera donc elle qui sera en charge de "deleter" ta fiche créée dynamiquement ou tu mets NULL et là c'est toi qui la détruit à la main

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Alors 2 ptits problemes :
    1) J avais creer vite fait TTruc pour ce forum pr expliquer mon cas .... mais j avais pas fe attention qu il existait dja un TCustomForm(TComponent *, int) comme constructeur
    Alors g qd meme tester avec ce int en parametre .... et la surprise ... g eu un stackOverflow
    il bouclait ds :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    __fastcall TTruc::TTruc(TComponent* AOwner, int x) 
          :TCustomForm(AOwner)
    si qqun serait pourquoi il appelle lui meme ?? et cmt y remedier (ou cas ou je devrais creer une fois une fiche dynamique avec un int en parametre)


    ////////////////////////////////////////////////////////////////////


    2) Je vais vous mettre une partie de mon code source .. comme ca y a plus place au hasard ...
    Ds mon .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class TFORMgestion : public TCustomForm{
      private:
      public:
            TFORMgestion(TComponent* AOwner, TTable *x);
    };
    Ds mon .cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TFORMgestion::TFORMgestion(TComponent* AOwner, TTable *x)
          :TCustomForm(AOwner)
    {
    Parent = dynamic_cast<TWinControl *>(AOwner);
    Top =10;
    Left =10;
    Width = 50;
    Height =50;
    }
    Ds mon .cpp appelant la fiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::BUTaddClick(TObject *Sender)
    {
    TFORMgestion *tmp = new TFORMgestion(this,DM->TABLE1);
    }
    Et la g une exeption EResNotFound avec le message : "Ressource TFORMgestion non trouvée"

    Dans l aide de c++builder ils mettent :
    AOwner désigne le propriétaire de la fiche (habituellement il s'agit de l'application ou d'une autre fiche). Transmettez l'application ou une autre fiche comme paramètre AOwner pour indiquer qu'elle est responsable de la libération de la fiche.
    --> J ai essaye avec this, Application et NULL comme AOwner ... mais tjrs cette meme exeption

    Est ce que je fais qqch de mal ????

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Oui t'as fais qq chose de mal :

    Pour le 1/, t'as mal lu l'aide :

    Les constructeurs de TCustomForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    __fastcall virtual TCustomForm(Classes::TComponent* AOwner);
    __fastcall TCustomForm(Classes::TComponent* AOwner, int Dummy);
    __fastcall TCustomForm(HWND ParentWindow) : Forms::TScrollingWinControl(ParentWindow) { }
    Donc toi t'as utilisé le 2 et ils disent
    La deuxième syntaxe sert aux descendants de TCustomForm qui ne sont pas des objets TForm. Le paramètre Aowner est identique à celui de la première syntaxe. Le deuxième paramètre, Dummy, ne sert qu'à distinguer ce constructeur du premier. Toute valeur transmise est ignorée. Les applications utilisant cette syntaxe doivent envoyer le flux dans un .DFM externe pour lier les composants visuels à leurs classes. WriteComponentResFile et ReadComponentResFile doivent encadrer le constructeur.
    Pour le 2/, t'as également mal lu l'aide donc j'te renvoie au 1/


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Ben j ai besoin de plus d eclairage la
    Pcq j ai bon lire plusieurs fois .... je ne vois pas comment faire

    Please .... HELP

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    J'vois pas trop pkoi tu t'embêtes avec ça..
    Pkoi tu crées pas une fiche comme t'as l'habitude de faire, ensuite tu la retire de ton projet puis un p'tit new de la classe de cette fiche et basta, c'est réglé..

    Kapiché ou c'est pas encore ça que tu veux ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Ouais t as raison ... je me prends la tete pr rien la .. LOL
    En plus j ai faillit te repondre une grosse connerie ... style : "ben g besoin d'un second paramatre pr cette fiche ... et j ai pas acces au constructeur"

    Mais qd meme avant de repondre j ai ete verifie ... et j ai bien du me rendre conte de mon erreur ...
    Je ne c pas ce qu il mas pris ... je me suis persuadee que j avais pas acces au constructeur (quel idee !!!)

    En tout cas merci

  8. #8
    Membre chevronné
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Points : 1 969
    Points
    1 969
    Par défaut
    La création des fiches dynamiquement a tout de même un intérêt : les fiches créées automatiquement par BCB restent en mémoire pendant toute la durée de l'application, ce qui peut être assez important pour un gros projet. Alors qu'en créant un dialogue dynamiquement, on le laisse en mémoire le temps de l'utiliser et de récupérer ses informations
    Une question concernant C++Builder ? Voici la réponse
    Consultez aussi les tutoriels de qualité de la section C/C++

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

Discussions similaires

  1. [image]Création d'image dynamique
    Par Booyakha dans le forum Struts 1
    Réponses: 24
    Dernier message: 07/06/2006, 18h01
  2. [Conception] creation de fiche dynamique a partir d'une base de données
    Par badnane2 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2006, 16h50
  3. [Conception] creation de fiche avec php
    Par badnane2 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/06/2006, 19h46
  4. Creation de librairies dynamique... Problème !
    Par Franck.H dans le forum Linux
    Réponses: 12
    Dernier message: 24/06/2005, 11h18
  5. creation fenetres (TForm) dynamiquement
    Par Erzak dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/12/2004, 20h25

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