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 :

Regrouper ses evénements et ses composants


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 164
    Par défaut Regrouper ses evénements et ses composants
    Comment vous faites ça?

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    il y a beaucoup plus simple, la VCL est beaucoup plus puissante que tu ne l'immagine

    pour des raisons de simplicité j'ai regroupé les checkbox dans une goupBox

    toutes ces checkBox sont donc des enfants de cette groupeBox et sont également dynamiquent construites lors de la construction du composant GroupBox
    lors de la destruction du composant tous les enfants sont également détruits

    les enfants sont stocké dans une liste dynamique que l'on peut modifier dynamiquent, --> pas besoin d'un tableau statique

    un petit exemple qui te permettra de comprendre cette approche

    ma form comtient
    3 Boutons
    Check,Uncheck,All
    1 ComboBox permettant de sélectioner la checkBox à activer
    1 GroupBox contenant 6 checkBox

    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
    //le.h
    #ifndef Unit72H
    #define Unit72H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm72 : public TForm
    {
    __published:	// Composants gérés par l'EDI
    	TGroupBox *Gb;
    	TComboBox *ComboBox1;
    	TButton *Button1;
    	TButton *Button2;
    	TButton *Button3;
    	TCheckBox *CheckBox1;
    	TCheckBox *CheckBox2;
    	TCheckBox *CheckBox3;
    	TCheckBox *CheckBox4;
    	TCheckBox *CheckBox5;
    	TCheckBox *CheckBox6;
    	void __fastcall Button1Click(TObject *Sender);
    	void __fastcall Button2Click(TObject *Sender);
    	void __fastcall Button3Click(TObject *Sender);
    private:	// Déclarations utilisateur
    public:		// Déclarations utilisateur
    	__fastcall TForm72(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm72 *Form72;
    //---------------------------------------------------------------------------
    #endif
     
    //le cpp
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit72.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm72 *Form72;
     
    __fastcall TForm72::TForm72(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm72::Button1Click(TObject *Sender)
    {
       // bouton Check
       try
       {
    	dynamic_cast <TCheckBox*>(Gb->Controls[StrToInt(ComboBox1->Items->operator [](ComboBox1->ItemIndex))-1])->Checked=true;
    	}
    	catch (EConvertError &E)
    	{
     
    	}
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm72::Button2Click(TObject *Sender)
    {
       // bouton UnCheck
       try
       {
    	dynamic_cast <TCheckBox*>(Gb->Controls[StrToInt(ComboBox1->Items->operator [](ComboBox1->ItemIndex))-1])->Checked=false;
    	}
    	catch (EConvertError &E)
    	{
     
    	}
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm72::Button3Click(TObject *Sender)
    {
    	// bouton All
       for (int n=0; n <Gb->ControlCount; n++) {
    	 dynamic_cast <TCheckBox*>(Gb->Controls[n])->Checked=true;
       }
    }
    //---------------------------------------------------------------------------
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    concernant ton exemple Regrouper ses événements, part II
    on peut égalememt profiter de la puissance de la VCL
    Pour ce faire le gestionnaire onClick de tous les boutonjs est le Même
    (il Suffit de sélectionner tous les boutons et de renommer le gestionnaire On click)

    code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // gestionnaire commun à tous les boutons
    void __fastcall TForm72::ButtonClick(TObject *Sender)
    {
    	Edit1->Text="J'ai clické sur le Bouton "+dynamic_cast<TButton*>(Sender)->Caption;
    }
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. Evénement d'un composant intégré dans un autre
    Par Papy214 dans le forum Composants FMX
    Réponses: 3
    Dernier message: 14/02/2013, 15h48
  2. Evénement MouseClick sur composant perso
    Par Tomcat31 dans le forum C#
    Réponses: 5
    Dernier message: 14/12/2012, 14h40
  3. XenDesktop, ses atouts et ses limites
    Par doumlee dans le forum Virtualisation
    Réponses: 1
    Dernier message: 09/11/2011, 20h55
  4. Evênement d'un composant COM
    Par DR dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/09/2007, 14h54
  5. Réponses: 9
    Dernier message: 29/01/2007, 11h00

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