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 :

création de composants


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 27
    Par défaut création de composants
    Bonjour,

    Je suis en train de créer des composants et le tutoriel m'aide beaucoup à comprendre leur programmation. Aujourdhui, je suis bloqué sur 2 points :
    Comment mettre la propriété ModalResult dans le programme du composant ?

    __property ModalResult; me génére une erreur !!!

    Comment traiter le caractéres "&" dans le Caption pour obtenir le raccourci clavier

    Merci de votre aide

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    __property TModalResult ModalResult;

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 27
    Par défaut
    Merci de votre aide,

    J'ai rentré le code: affichage d'erreur d'initialisation!!

    J'ai modifier le code en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TModalResult FModalResult;
    ...
    ...
    ...
    __property TModalResult ModalResult =  {read=FModalResult,
    write=FModalResult, default=0};
    Je n'ai plus d'erreur...

    Mais il me reste à résoudre le problème du ModalResult qui ne fonctionne pas ( pas de sortie de la fiche Modal sur le click du bouton) et je n'ai pas l'énumération dans la propriété ModalResult .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enum ????? {mrNone, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore, mrYes, mrNo, mrAll, mrNoToAll, mrYesToAll};
    Pouvez-vous m'aider ?

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je ne comprend pas votre problème d'énumération.

    Pour que la votre fenêtre se ferme je pense qu'il vous faut plutôt procéder comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TModalResult FModalResult;
    ...
    ...
    ...
    __property TModalResult ModalResult =  {read=FModalResult,
    write=SetModalResult, default=0};
    Avec SetModalResult :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall maform::SetModalResult (TModalResult value)
    {
       if ( value != FModalResult )
       {
          if ( value != mrNone )
              this->Close();
     
          FModalResult = value;
        }
    }

  5. #5
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 27
    Par défaut
    Avec le bouton fourni avec Borland, dans la propriété ModalResult, le choix se fait par une liste ( mrOk, mrCancel, etc.. ) et c'est ça que je veux faire. Mais comment ????

    Je vais essayer ton code ce soir

    Merci

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Par défaut
    Je vois plutôt les choses comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void __fastcall moncomposant::SetModalResult (TModalResult value)
    {
       FModalResult = value;
    }
     
    void __fastcall moncomposant::Click ()
    {
       if (FOnClick) FOnClick(this);
       TForm *pForm = dynamic_cast<TForm *> Parent;
       if (pForm != NULL) pForm->ModalResult = FModatResult; //code simplifié, car suppose que le control parent est de type TForm. Sinon faire une recherche récursive.
    }

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ah...moi je pensais qu'il écrivait un descendant de TForm pour vouloir y mettre une propriété ModalResult....

    Effectivement si ce n'est pas le cas je suis d'accord avec toi slylafone !

  8. #8
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 27
    Par défaut
    Voici pour que la propriété ModalResult fonctionne dans le composant bouton TYDFigureBtn

    Dans le fichier TYDFigureBtn.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected:
    -
    -
    void __fastcall SetModalResult(TModalResult Value);
    DYNAMIC void __fastcall Click(void);
    -
    -
    __published:
    -
    -
    __property TModalResult ModalResult = {read=FModalResult,
                                                            write=SetModalResult, default=0};
    Dans le fichier TYDFigureBtn.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //---------------------------------------------------------------------------
    void __fastcall TYDFigureBtn::SetModalResult(TModalResult Value)
    {
            FModalResult = Value;
    }
    //---------------------------------------------------------------------------
    void __fastcall TYDFigureBtn::Click()
    {
            if(OnClick) OnClick(this);
            TForm *pForm = dynamic_cast<TForm *> (Parent);
            if(pForm != NULL) pForm->ModalResult = FModalResult;
    }
    Neilos et slylafone, je vous remercie pour votre aide

    Mais il me reste à résoudre le Caption de ce bouton avec le & pour raccourci clavier

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

Discussions similaires

  1. [Création de composant] Surcharge de OnMouseMove
    Par yoghisan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/02/2004, 22h34
  2. [Création de composant] Composant exclu de ComponentCount
    Par yoghisan dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/02/2004, 12h45
  3. [Création de composant] Focus
    Par Pedro dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/02/2004, 13h57
  4. Ordre de création de composant
    Par bobby-b dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/09/2003, 19h05
  5. [Kylix] Création de composant
    Par glub dans le forum EDI
    Réponses: 2
    Dernier message: 08/01/2003, 16h58

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