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 :

Savoir si cette class dérive de ou est un TComponent


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut Savoir si cette class dérive de ou est un TComponent
    Bonjour,

    J'ai un problème peu commum. J'ai un AnsiString qui m'indique le type d'un objet (exemple "TBitmap", "TFont", "TButton", ...).

    Je n'ai que ça. C'est à dire un ansistring qui me fournit le nom de la class.

    Et je voudrait pouvoir savoir si cette class est un dérivé de component (quelque soit le degré).

    Je n'ai donc pas trouvé de solution pour l'instant. Je pensais trouver une méthode pour créer une class depuis nom nom pour ensuite utiliser InheritsFrom. Je pense (mais je n'en suis pas certain) que toute les class sont au moins des TObject.

    En fait, je n'ai qu'accès au PTypeInfo dont je regarde si le Kind == tkClass et il me reste le Name.

    Merci

    Edit :
    J'ai trouvé quelques chose qui est presque bon mais qui plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       if (GetClass(Item->Data->TypeInfo->Name)->InheritsFrom(GetClass("TComponent")))

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    J'ai trouver une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if ((Item->Data != NULL) && (Item->Data->TypeInfo->Kind == tkClass))
       {
       if (AnsiString("TJvInspectorComponentItem").AnsiCompare(Item->ClassName()) == 0)
          {
          dynamic_cast<TJvInspectorComponentItem*>(Item)->AddOwner(Form1);
          }
       }

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

Discussions similaires

  1. Savoir si une classe est instanciée ?
    Par Sancha dans le forum Langage
    Réponses: 3
    Dernier message: 09/11/2009, 14h15
  2. Réponses: 3
    Dernier message: 23/09/2009, 09h52
  3. JavaDoc : cette classe est elle bien commentée ?
    Par jmnicolas dans le forum Langage
    Réponses: 4
    Dernier message: 04/09/2008, 11h36
  4. Réponses: 2
    Dernier message: 29/06/2006, 16h33
  5. [VB6] Savoir depuis VB, si un document Excel est ouvert
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 08h16

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