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 :

Evenement sur un ScrollBox


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 60
    Par défaut Evenement sur un ScrollBox
    Bonjour à tous et bonne année,

    Existe-t-il un évènement qui contrôle les barres de défilement dans un ScrollBox.
    Je voudrais faire bouger un composant en fonction du déplacement des barres de défilement du ScrollBox.
    Est-ce possible?

    D'avance merci.

  2. #2
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut
    Par défaut , il n'en existe pas.
    Il cependant possible de les rajouter sur nouveau composant :

    voila un exemple pour ajouter 2 evenements :
    OnVerticalScrollPosChange
    OnHorizontalScrollPosChange


    Code du Composant

    fichier .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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    //---------------------------------------------------------------------------
     
    #ifndef MyScrollBoxH
    #define MyScrollBoxH
    //---------------------------------------------------------------------------
    #include <SysUtils.hpp>
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class PACKAGE TMyScrollBox : public TScrollBox
    {
    private:
     
            TNotifyEvent FOnVerticalScrollPosChange;
            TNotifyEvent FOnHorizontalScrollPosChange;
     
     
    protected:
             //evenements
            void __fastcall  VerticalScroll( TWMVScroll &Msg ) ;
            void __fastcall  HorizontalScroll( TWMHScroll &Msg ) ;
    public:
            __fastcall TMyScrollBox(TComponent* Owner);
     
             //fonctions pour controler le deplacement du bouton de scroll
            void __fastcall ScrollLineDown();
            void __fastcall ScrollLineUp();
            void __fastcall ScrollPageDown();
            void __fastcall ScrollPageUp();
     
     
            //capture des messages WM_VSCROLL et WM_HSCROLL
            BEGIN_MESSAGE_MAP
                MESSAGE_HANDLER(WM_VSCROLL, TWMVScroll, VerticalScroll)
                MESSAGE_HANDLER(WM_HSCROLL, TWMHScroll, HorizontalScroll)
            END_MESSAGE_MAP(TScrollBox)
     
    __published:
     
           __property TNotifyEvent OnHorizontalScrollPosChange={read=FOnHorizontalScrollPosChange,write=FOnHorizontalScrollPosChange};
           __property TNotifyEvent OnVerticalScrollPosChange={read=FOnVerticalScrollPosChange,write=FOnVerticalScrollPosChange};
     
    };
    //---------------------------------------------------------------------------
    #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
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
     
    #pragma hdrstop
     
    #include "MyScrollBox.h"
    #pragma package(smart_init)
     
     
    //---------------------------------------------------------------------------
    // ValidCtrCheck is used to assure that the components created do not have
    // any pure virtual functions.
    //
     
    static inline void ValidCtrCheck(TMyScrollBox *)
    {
            new TMyScrollBox(NULL);
    }
    //---------------------------------------------------------------------------
    __fastcall TMyScrollBox::TMyScrollBox(TComponent* Owner)
            : TScrollBox(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall  TMyScrollBox::VerticalScroll( TWMVScroll &Msg )
    {
            if(FOnVerticalScrollPosChange) {
             FOnVerticalScrollPosChange(this);
            }
            TScrollBox::Dispatch(&Msg);
    }
    //---------------------------------------------------------------------------
    void __fastcall  TMyScrollBox::HorizontalScroll( TWMHScroll &Msg )
    {
            if(FOnHorizontalScrollPosChange) {
               FOnHorizontalScrollPosChange(this);
            }
            TScrollBox::Dispatch(&Msg);
    }
    //---------------------------------------------------------------------------
    void __fastcall TMyScrollBox::ScrollLineDown()
    {
        Perform(WM_VSCROLL,SB_LINEDOWN,NULL);
    }
    //---------------------------------------------------------------------------
    void __fastcall TMyScrollBox::ScrollLineUp()
    {
        Perform(WM_VSCROLL,SB_LINEUP,NULL);
    }
    //---------------------------------------------------------------------------
    void __fastcall TMyScrollBox::ScrollPageDown()
    {
        Perform(WM_VSCROLL,SB_PAGEDOWN,NULL);
    }
    //---------------------------------------------------------------------------
    void __fastcall TMyScrollBox::ScrollPageUp()
    {
        Perform(WM_VSCROLL,SB_PAGEUP,NULL);
    }
     
    //---------------------------------------------------------------------------
    namespace Myscrollbox
    {
            void __fastcall PACKAGE Register()
            {
                     TComponentClass classes[1] = {__classid(TMyScrollBox)};
                     RegisterComponents("Developpez.com", classes, 0);
            }
    }
    //---------------------------------------------------------------------------


    voici un exmple d'utilisation après installation:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // nouvel evenement 
    void __fastcall TForm1::MyScrollBox1VerticalScrollPosChange(
          TObject *Sender)
    {
     
            ProgressBar1->Position = MyScrollBox1->VertScrollBar->Position;
     
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 60
    Par défaut
    Merci beaucoup pour ta réponse.

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

Discussions similaires

  1. [C#] Evenement sur classe virtual
    Par papouAlain dans le forum Windows Forms
    Réponses: 26
    Dernier message: 11/01/2005, 11h45
  2. Evenement sur UPDATE, INSERT, DELETE
    Par papouAlain dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/12/2004, 14h58
  3. Evenement sur objet dynamique
    Par CanardJM dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 19/11/2004, 13h56
  4. Evenement sur les barres de défilement d'une ScrollBox
    Par Nico118 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2004, 14h56
  5. [FLASH MX 2004] [ecouteur] evenements sur un clip
    Par marco_ dans le forum Flash
    Réponses: 2
    Dernier message: 30/04/2004, 13h28

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