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

Composants VCL Delphi Discussion :

[Scrolling] Mouse Wheel avec plusieurs DBGrid


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut [Scrolling] Mouse Wheel avec plusieurs DBGrid
    Bonjour, J'ai récupéré il y a quelque temps le code permettant de prendre en charge le message WM_MouseWheel par un TDBGrid.

    Mais quand on en a plusieurs sur une fiche , comment faire ?
    Page du code

    Je pense qu'il faire a chaque changement de (focus) DBGrid, initialiser OldWindowProc. Mais je ne sais pas comment faire.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    si tu as recuperer ce genre de 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
    procedure Tform1.DBGridMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
    {ROULETTE Down}
    begin
        Handled := True;
        if sender is TDBGrid then
        TDBGrid(Sender).Datasource.DataSet.Next;
    end;
     
    procedure Tform1.DBGridMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
    {ROULETTE Up}
    begin
        Handled := True;
        if sender is TDBGrid then
        TDBGrid(Sender).Datasource.DataSet.Prior;
    end;
     
    procedure Tform1.GereMolettedansDBgrid(Sender: TWinControl);
    //procedure récursive qui cherche les DBGrid dans tous les controles
    var
        i: integer;
    begin
      // cette methode parcourt tous les controle afin de resencer et
     //d'affecter les deux methode de facon totalement transparente 
        With Sender do
        begin
            //ShowMessage(Sender.Name);
            for i := 0 to ControlCount - 1 do
            begin
                if Controls[i] is TDBGrid then
                With TDrawGrid(Controls[i]) do
                    begin
                    //modifie les procédure de la roulette
                    OnMouseWheelDown := DBGridMouseWheelDown;
                    OnMouseWheelUp := DBGridMouseWheelUp;
                    end
                else if Controls[i] is TWinControl then
                if TWinControl(Controls[i]).ControlCount > 0 then
                    GereMolettedansDBgrid(TWinControl(Controls[i]));
            end;
        end;
    end;
    {------------------------------------------------------------------------------}
    celui-ci gere tous seul les multiple dbgrid de ta form du momment que le
    porietaire du dbgrid est connue de la form

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Merci mais
    j'ai une violation d'accès !
    J'ai mis dans le OnActivate de ma fiche


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GereMolettedansDBgrid(NOM_DE_LA_FICHE);
    C'est bien ca non ?

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    c'est pas la qu'il fallait le placer

    essai dans le create de la form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GereMolettedansDBgrid(self);
    avec cette affectation


    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Nickel merci man
    a+

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

Discussions similaires

  1. utilisation de la " mouse wheel" sur une scrolled window
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 1
    Dernier message: 15/10/2012, 11h55
  2. Problème de scroll avec une dbGrid
    Par marcootz dans le forum C++Builder
    Réponses: 0
    Dernier message: 02/01/2008, 15h21
  3. Réponses: 2
    Dernier message: 26/09/2003, 15h54
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  5. Shortcut avec plusieurs touches
    Par scorpiwolf dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/07/2002, 15h57

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