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 un controle existe (n'est pas null) [FAQ]


Sujet :

C++Builder

Vue hybride

Orangina Savoir si un controle existe... 23/04/2006, 18h38
Sunchaser Bonsoir, As tu essayé... 23/04/2006, 19h12
Ricky81 Bonjour, ... 23/04/2006, 19h24
Orangina Pour un évènement cela marche... 23/04/2006, 21h10
henderson Salut ! Si on connait le... 24/04/2006, 00h20
Orangina Bonjour Il n'y a rien... 24/04/2006, 08h45
Orangina Je viens de la faire, c'est... 23/04/2006, 21h06
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut Savoir si un controle existe (n'est pas null)
    Bonjour

    Je veux tester si un contrôle existe.
    En Delphi (je transforme un code venant de Delphi) il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Assigned(Control)) then ...
    Comment traduire sous BCB 6.0 ?
    Si je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    bool __fastcall TForm1::IsMouseOverControl(TWinControl& Control)
    {
        if (Control) ShowMessage ("Le contrôle existe");
    }
    la compilation ne passe pas, j'ai l'erreur
    [C++ Erreur] Unit1.cpp(62): E2015 Ambiguïté entre 'TComponent::operator IInterfaceComponentReference *()' et 'TComponent::operator IInterface *()'

    Si qqu'un a une idée...
    Merci

  2. #2
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Bonsoir,

    As tu essayé qqchose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!Control == NULL) { } //etc...
    A tout hasard ?
    @ +

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut
    Citation Envoyé par Ricky81
    Pour un évènement cela marche mais pour un TControl non, en tout cas pas comme cela.
    Mais merci quand même à tous les 2.

  5. #5
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Si on connait le propriétaire de l'objet on peut peut-être envisager un test
    par rapport à sa liste Components.
    Voir TComponent dans l'aide.

    A partir de TWinControl il existe également la méthode ContainsControl (TControl* Control).
    Cette méthode ne pourrait-elle pas résoudre le problème ?
    Voir TWinControl dans l'aide.

    Sinon est-ce que tu peux en dire un peu plus ?
    Est-ce qu'une dll intervient dans l'histoire ?

    A plus !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut
    Bonjour

    Il n'y a rien d'autre dans la fonction (pas de DLL, etc...), ce qui ne passe pas c'est le test d'égalité
    if (Control == NULL).
    if (Control != NULL) pose le même problème, le compilateur ne sait pas quel opérateur choisir.

    [C++ Erreur] E2015 Ambiguïté entre 'TComponent::operator IInterfaceComponentReference *()' et 'TComponent::operator IInterface *()'

    Je pense qu'il faut que je fasse un cast sur le TWinControl& Control pour lever l'ambiguité mais lequel ?

    Merci

  7. #7
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    C'est une histoire de syntaxe. On ne devrait pas employer "Control".
    Peut être remplacer le pointeur Control par pControl.

    A plus !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut
    Citation Envoyé par Cantrelle
    As tu essayé qqchose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!Control == NULL) { } //etc...
    A tout hasard ?
    @ +
    Je viens de la faire, c'est pareil.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/01/2011, 14h00
  2. Réponses: 3
    Dernier message: 06/08/2009, 11h03
  3. Savoir si un Control existe?
    Par dtcSearch dans le forum C#
    Réponses: 6
    Dernier message: 09/04/2009, 15h19
  4. Réponses: 0
    Dernier message: 01/12/2008, 20h05
  5. requête Est pas Null
    Par emilie31 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 19/03/2007, 10h54

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