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 :

Renommer une classe TForm


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut Renommer une classe TForm
    Bonjour,

    J'ai donc un souci pour renommer une classe TForm, je m'explique.

    J'ai un projet, avec plusieurs applications que j'ai développé en paralélle, forcément elles s'appellent toutes TForm1, TForm2 et quand je les inclue dans mon application finale ca cloche.

    J'ai renommé les Classes dans le fichier .h et dans le code, ca compile, mais à la fin j'ai une erreur de Linker :

    [Linker Error] Unresolved external 'TForm1::' referenced from D:\INTERNSHIP\PAINTBOX\PB2.OBJ
    Qui aurait une idée ? Je vous remercie d'avance!

  2. #2
    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
    Bonjour,
    Comment as tu inclus TForm1 dans tes fichiers PB2.c et PB2.h ?

    Inclure directement Unit1.h permet d'avoir accès aux composants de TForm1. Il n'est pas nécessaire de redéclarer la class TForm

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Salut,

    Le problème n'est pas d'inclure les fichiers, mais de renommer les TForm.

    J'ai plusieurs applis séparées qui ont pour IHM TForm1 et TForm2.

    Quand je veux les assembler dans mon appli finale, ces TForm1 et 2 des applis précédentes s'écrasent les unes les autres, c'est pour ça que je veux les renommer ...

    Je viens de modifier mon PB2.cpp

    try
    {
    Application->Initialize();
    Application->CreateForm(__classid(TForm1), &Form1);
    Application->CreateForm(__classid(TForm2), &Form2);
    Application->CreateForm(__classid(TForm3), &Form3);
    Application->Run();
    }
    vers

    try
    {
    Application->Initialize();
    Application->CreateForm(__classid(TForm_Domain), &Form1);
    Application->CreateForm(__classid(TForm2), &Form2);
    Application->CreateForm(__classid(TForm3), &Form3);
    Application->Run();
    }
    et là :
    [C++ Error] PB2.cpp(15): E2303 Type name expected
    [C++ Error] PB2.cpp(15): E2121 Function call missing )
    Bref je vois vraiment pas comment me sortir de ce pétrin

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Avec ma version BCB 3 Pro, cela se fait à l'aide de l'inspecteur d'objets.
    Il suffit de modifier la propriété Name de la fiche pour que BCB effectue les modifications nécessaires.
    Dans ton exemple, en donnant Form_Domain à Name de Form1, la classe devient TForm_Domain et le pointeur devient Form_Domain.
    Par contre, cette modification se limitera à l'unité de Form1, donc tout ce que l'on aura pu ajouter sous la forme Form1-> dans les autres unités devra être modifié manuellement (en recherchant "Form1" dans les autres unités et en le remplaçant par "Form_Domain" pour citer ton exemple).

    En espérant, bien sûr, avoir compris la question...

    A plus !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 69
    Points : 50
    Points
    50
    Par défaut
    C'est exactement ce que j'aurais fait!
    T'as essayé? ça a réglé ton problème?
    Bon courage

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Oops, j'ai oublié de changer le post en résolu, mes plus plates excuses, et merci encore pour votre aide !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/01/2015, 17h36
  2. Réponses: 2
    Dernier message: 20/06/2012, 09h27
  3. Probleme avec une class construite à partir d'un Tform
    Par Dereck07 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/10/2010, 15h57
  4. Renommer une classe
    Par MarieMtl dans le forum MFC
    Réponses: 3
    Dernier message: 09/12/2005, 22h40
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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