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 :

Evénement pour un bouton créé dynamiquement


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 62
    Points : 13
    Points
    13
    Par défaut Evénement pour un bouton créé dynamiquement
    Bonjour à tous, j'ai voulu pouvoir déplacer un bouton créé dynamiquement à l'aide de la souris, avec l’évènement MouseMove, mais j'ai pas pu ...
    Merci de m'avoir indiqué comment procéder.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut chiti
    C'est possible
    le .cpp
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    TButton *Button;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
     Button = new TButton(this);
    Button->Top = 300;
    Button->Left = 300;
    Button->Height = 25;
    Button->Width = 75;
    Button->Parent = Form1;
    Button->Visible = true;
    Button->Caption = "bouton";
    Button->OnMouseMove = MonTraiteMouseMove;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseMove(TObject *Sender, TShiftState, int, int)
    {
       // traitement
       ReleaseCapture();
       SendMessage(Button->Handle, WM_SYSCOMMAND, 0xF012, 0);
    }
    //---------------------------------------------------------------------------
    le .h
    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
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
            void __fastcall FormCreate(TObject *Sender);
    private: // User declarations
            void __fastcall TForm1::MonTraiteMouseMove(TObject *Sender, TShiftState, int, int);
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 62
    Points : 13
    Points
    13
    Par défaut
    Merci pour cette réponse, je ne peux l'essayer pour l'instant vu que je n'ai pas le CodeGear ici, je le ferais ce soir.
    J'ai essayé de gérer l'évènement MouseClick pour mes boutons dynamique, et ça a marché à merveil, mais j'ai pas pu le faire pour MouseMove, je te propose mon code, et dis moi POURQUOI ça ne marche pas

    Pour le .h
    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
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ComCtrls.hpp>
    #include <Menus.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    private:    // Déclarations utilisateur
    public:        // Déclarations utilisateur
        __fastcall TForm1(TComponent* Owner);
        TButton *MonBouton1;
        TButton *MonBouton2;
        TButton *MonBouton3;
        void __fastcall MonBouton1Click(TObject *Sender);
        void __fastcall MonBouton2Click(TObject *Sender);
        void __fastcall MonBouton3Click(TObject *Sender);
        void __fastcall MonBouton1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Le .cpp


    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #include "TBouton.cpp"
    #include "Unit2.h"
    #include "Unit3.h"
    #include "Unit4.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    //---------------------------------------------------------------------------
    TForm1 *Form1;
     
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    }
     
    //---------------------------------------------------------------------------
    int creation=1, etape=1, fin=1;
    int leftCre = 300, topCre=0, topEta = 0;
    String trait = "___________________________";
    UnicodeString nom = "Création";
    UnicodeString nom2 = "Etapes";
    UnicodeString nom3 = "Fin";
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //Ce bouton permet de créer des boutons création autant qu'on veut.
        topCre += 50;
        MonBouton1 = new TButton(this);
        MonBouton1->Left = leftCre;
        MonBouton1->Top = topCre;
        MonBouton1->Parent = Form1;
        creation += 1;
        MonBouton1->OnClick = MonBouton1Click;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    //Ce bouton permet de créer des bouton étapes autant qu'on veut.
        TButton *MonBouton2;
        MonBouton2 = new TButton(this);
        MonBouton2->Top = topCre ;
        MonBouton2->Left = leftCre + 150;
        MonBouton2->Parent = Form1;
        TLabel *MonLabel;//Création d'un lien visuel du bouton etapes avec la dernière création
        MonLabel = new TLabel(this);
        MonLabel->Top = topCre;
        MonLabel->Left = leftCre;
        MonLabel->Caption = trait;
        MonLabel->Parent = Form1;
        topEta = topCre;
        MonBouton2->OnClick = MonBouton2Click;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    //Ce bouton permet de créer des bouton fin autant qu'on veut.
        TButton *MonBouton3;
        MonBouton3 = new TButton(this);
        MonBouton3->Left = leftCre + 300;
        MonBouton3->Top = topEta;
        MonBouton3->Parent = Form1;
        TLabel *MonLabel;//Création d'un lien visuel du bouton fin avec la dernière étape.
        MonLabel = new TLabel(this);
        MonLabel->Top = topEta;
        MonLabel->Left = leftCre + 150;
        MonLabel->Caption = trait;
        MonLabel->Parent = Form1;
        MonBouton3->OnClick = MonBouton3Click;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonBouton1Click(TObject *Sender)
    {
        Form2->Show();
        //Afficher la fenêtre "Création"
     
    }
     
    void __fastcall TForm1::MonBouton2Click(TObject *Sender)
    {
        Form3->Show();
        //Afficher la fenêtre "Etapes"
     
    }
     
    void __fastcall TForm1::MonBouton3Click(TObject *Sender)
    {
        Form4->Show();
        //Afficher la fenêtre "Fin"
     
    }
     
    void __fastcall TForm1::MonBouton1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    {
    TPoint* pt;
    ReleaseCapture;
    SendMessage(MonBouton1->Handle, WM_SYSCOMMAND, 61458, 0);
    GetCursorPos(pt);
    SendMessage(MonBouton1->Handle, WM_LBUTTONUP, MK_CONTROL, Longint(pt));
    }
    //---------------------------------------------------------------------------

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    La je seche des que l'on essaye de bouger le TButton celui ci execute un MouseDown alors que le bouton de la souris reste enfonce
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  5. #5
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Si je comprends bien, tu veux créer un bouton dynamiquement et permettre à l'utilisateur de le placer où il veut, c'est ça?

    Si c'est ça. j'avais déjà fait un soft dans le genre, me semble que j'utilisais la technique du "Drag and drop" et ça fonctionnait très bien.

    Faudrait que je retrouve le code, mais de mémoire il me semble c'était la forme qui s'occupait de déplacer le bouton et non le bouton lui-même. Ça se faisait via l'événement "FormDragOver".

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 62
    Points : 13
    Points
    13
    Par défaut
    En effet je crée des boutons dynamiquement, et j'ai pu gérer l'évènement du clique de la souris, mais par contre pas le mouvement de la souris ....
    Guyt54 Tu peux m'éclaircir à ce propos s'il te plait !?

  7. #7
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Bin voilà.

    Le bouton n'a pas été crée dynamiquement, je te montre ici comment on peut simplement déplacer un bouton avec une souris:

    le .h:

    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
     
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <System.Classes.hpp>
    #include <Vcl.Controls.hpp>
    #include <Vcl.StdCtrls.hpp>
    #include <Vcl.Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm2 : public TForm
    {
    __published:	// Composants gérés par l'EDI
     TButton *Button1;
     void __fastcall FormDragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State,
              bool &Accept);
    private:	// Déclarations utilisateur
    public:		// Déclarations utilisateur
     __fastcall TForm2(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm2 *Form2;
    //---------------------------------------------------------------------------
    #endif
    le .cpp:

    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
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
     : TForm(Owner)
    {
      Button1->DragMode = dmAutomatic ;
     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::FormDragOver(TObject *Sender, TObject *Source, int X, int Y,
              TDragState State, bool &Accept)
    {
      if (Source->ClassNameIs("TButton"))
        {
          TButton* button = (TButton*) Source ;
          button->Left = X ;
          button->Top = Y ;
        }
    }
    Faut pas oublier de mettre la propriété DragMode du bouton à dmAutomatic,

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 62
    Points : 13
    Points
    13
    Par défaut
    Est ce que c'est normal si je ne peux que déplacer le dernier bouton créé ????

  9. #9
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Citation Envoyé par chiti Voir le message
    Est ce que c'est normal si je ne peux que déplacer le dernier bouton créé ????
    Non, tous les boutons (créées dynamiquement ou pas) qui ont la propriété "DragMode" à dmAutomatic pourront être déplacés, en tout cas, c'est ce que je constate avec mon programme test...

  10. #10
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Je viens de rajouter un évément "OnClick" à mon bouton et me suis rappelé que celui n'est pas appelé si sa propriété DragMode est à dmAutomatic.

    Dans le logiciel que j'avais écrit, c'était pas grave, même que c'était souhaitable car je voulais 2 modes, édition et exécution. Quand il y avait un changement, je parcourais la liste des composants de la forme et je changeais la propriété DragMode en conséquence.

    Pour parcourir la liste des composants de TForm, il y a les propriétés "Components[]" et "ComponentCount".

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    J'ai un peu plus de temps et j'ai repris mes essais et le code propose fonctionne avec un evenement OnClick
    le .cpp
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    TButton *Buttonxx;
           bool Deplacement;
           int XPos, YPos;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    /*
    Button = new TButton(this);
    Button->Top = 50;
    Button->Left = 50;
    Button->Height = 25;
    Button->Width = 75;
    Button->Parent = Form1;
    Button->Visible = true;
    Button->Caption = "bouton";
    Button->OnMouseMove = MonTraiteMouseMove;
    //Button->OnMouseDown = MonTraiteMouseDown;
    Button->OnClick = MonTraiteMouseClick;
    */
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    {
       // traitement
       ReleaseCapture();
       SendMessage(Buttonxx->Handle, WM_SYSCOMMAND, 0xF012, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
    //
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseClick(TObject *Sender)
    {
    Beep(0x00FF, 1000);
    }
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Buttonxx = new TButton(this);
    Buttonxx->Top = 50;
    Buttonxx->Left = 50;
    Buttonxx->Height = 25;
    Buttonxx->Width = 75;
    Buttonxx->Parent = Form1;
    Buttonxx->Visible = true;
    Buttonxx->Caption = "boutonxx";
    Buttonxx->OnMouseMove = MonTraiteMouseMove;
    //Buttonxx->OnMouseDown = MonTraiteMouseDown;
    Buttonxx->OnClick = MonTraiteMouseClick;
    }
    //---------------------------------------------------------------------------
    le .h
    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
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
            TButton *Button1;
            void __fastcall FormCreate(TObject *Sender);
            void __fastcall Button1Click(TObject *Sender);
    private: // User declarations
            void __fastcall TForm1::MonTraiteMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
            void __fastcall TForm1::MonTraiteMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
          void __fastcall TForm1::MonTraiteMouseClick(TObject *Sender);
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Fais un essais avec le code telquel pour toi voir le resultat
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  12. #12
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Le meme et avec deux bouttons perso et qui se deplacent et gerent le click
    le .cpp
    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
    91
    92
    93
    94
    95
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    TButton *Buttonxx;
    TButton *Buttonyy;
           bool Deplacement;
           int XPos, YPos;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    /*
    Button = new TButton(this);
    Button->Top = 50;
    Button->Left = 50;
    Button->Height = 25;
    Button->Width = 75;
    Button->Parent = Form1;
    Button->Visible = true;
    Button->Caption = "bouton";
    Button->OnMouseMove = MonTraiteMouseMove;
    //Button->OnMouseDown = MonTraiteMouseDown;
    Button->OnClick = MonTraiteMouseClick;
    */
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    {
       // traitement
       ReleaseCapture();
       SendMessage(Buttonxx->Handle, WM_SYSCOMMAND, 0xF012, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
    //
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseClick(TObject *Sender)
    {
    Beep(0x00FF, 1000);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Buttonxx = new TButton(this);
    Buttonxx->Top = 50;
    Buttonxx->Left = 50;
    Buttonxx->Height = 25;
    Buttonxx->Width = 75;
    Buttonxx->Parent = Form1;
    Buttonxx->Visible = true;
    Buttonxx->Caption = "boutonxx";
    Buttonxx->OnMouseMove = MonTraiteMouseMove;
    //Buttonxx->OnMouseDown = MonTraiteMouseDown;
    Buttonxx->OnClick = MonTraiteMouseClick;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Buttonyy = new TButton(this);
    Buttonyy->Top = 50;
    Buttonyy->Left = 50;
    Buttonyy->Height = 25;
    Buttonyy->Width = 75;
    Buttonyy->Parent = Form1;
    Buttonyy->Visible = true;
    Buttonyy->Caption = "boutonyy";
    Buttonyy->OnMouseMove = MonTraiteMouseMove1;
    //Buttonxx->OnMouseDown = MonTraiteMouseDown;
    Buttonyy->OnClick = MonTraiteMouseClick1;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseMove1(TObject *Sender, TShiftState Shift, int X, int Y)
    {
       // traitement
       ReleaseCapture();
       SendMessage(Buttonyy->Handle, WM_SYSCOMMAND, 0xF012, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::MonTraiteMouseClick1(TObject *Sender)
    {
    Beep(0x00FF, 1000);
    }
    le .h
    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
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
            TButton *Button1;
            TButton *Button2;
            void __fastcall FormCreate(TObject *Sender);
            void __fastcall Button1Click(TObject *Sender);
            void __fastcall Button2Click(TObject *Sender);
    private: // User declarations
            void __fastcall TForm1::MonTraiteMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
            void __fastcall TForm1::MonTraiteMouseMove1(TObject *Sender, TShiftState Shift, int X, int Y);
            void __fastcall TForm1::MonTraiteMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
          void __fastcall TForm1::MonTraiteMouseClick(TObject *Sender);
          void __fastcall TForm1::MonTraiteMouseClick1(TObject *Sender);
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Si le code tel qu'il est ecrit fonctionne chez toi c'est que cela est du a la construction de ton programme
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 62
    Points : 13
    Points
    13
    Par défaut
    D'accord, merci pour ces réponses, je vais l'essayer ce soir, et je vous tiendrais au courant ... Merci encore !

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/10/2014, 23h42
  2. AddHandler pour Boutons créé dynamiquement
    Par RTN14 dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/04/2010, 15h16
  3. Erreur à la compilation pour un bouton créé dynamiquement
    Par echap2000 dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/08/2008, 17h23
  4. [VBA-W] Evénement sur bouton créé dynamiquement
    Par ptilo dans le forum VBA Word
    Réponses: 9
    Dernier message: 21/06/2006, 11h08
  5. Evénement pour un objet créé dynamiquement
    Par rsc dans le forum Langage
    Réponses: 18
    Dernier message: 10/02/2006, 14h49

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