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

Lazarus Pascal Discussion :

ScrollBox : Scroll sur un élément enfant


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 26
    Points
    26
    Par défaut ScrollBox : Scroll sur un élément enfant
    Bonjour,

    Pour les besoins d'une application je dois placer un panel en haut de ma forme qui doit toujours être visible, puis sur cette même forme il me faut une zone qui soit scrollable si le contenu est plus grand que la forme.

    J'ai donc placé un Panel en align alTop et une ScrollBox en align alClient. Le résultat obtenu répond à mes besoins, en suite je place des éléments enfants à cette ScrollBox comme un Panel ou Label.

    Lorsque le curseur de la souris se trouve au dessus d'un élément enfant de la ScrollBox, le scroll avec la mollette de la souris (MouseWheel) ne fonctionne plus !

    Y a t il une solution pour que le scroll par le molette de la souris fonctionne toujours au dessus d'un élément enfant à ma ScrollBox ?

    J'ai pas mal cherché et je n'ai pas trouvé de solution fonctionnelle, j'ai trouvé le moyen de détecter l'utilisation de la molette (avec TApplicationProperties et l'événement OnUserInput) mais je ne connais pas le delta et le sens.

    Je précise que ce comportement ne se passe que sous Windows, sous Linux pas de problème je peux scroller sur un élément enfant (Pas testé sous OSX). De plus j'ai le même comportement avec un TFrame...

    Et pour finir, si je n'utilise pas de ScrollBox mais que je place mes éléments directement sur la forme je peux scroller avec la mollette en ayant mon curseur au dessus d'un élément (même sous Windows). Mais après mon Panel qui est en align alTop ne sera plus toujours visible...

    J'ai ajouté un exemple en pièce jointe.

    Merci de votre aide

    @+
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Mukatai Voir le message
    Bonjour,

    Pour les besoins d'une application je dois placer un panel en haut de ma forme qui doit toujours être visible, puis sur cette même forme il me faut une zone qui soit scrollable si le contenu est plus grand que la forme.

    J'ai donc placé un Panel en align alTop et une ScrollBox en align alClient. Le résultat obtenu répond à mes besoins, en suite je place des éléments enfants à cette ScrollBox comme un Panel ou Label.

    Lorsque le curseur de la souris se trouve au dessus d'un élément enfant de la ScrollBox, le scroll avec la mollette de la souris (MouseWheel) ne fonctionne plus !

    Y a t il une solution pour que le scroll par le molette de la souris fonctionne toujours au dessus d'un élément enfant à ma ScrollBox ?
    Bonjour,

    Le comportement décrit semble normal : quand la souris est au-dessus du label, le gestionnaire de la molette appelé est celui du... label. Il suffit d'ailleurs de décaler cette souris en dehors du label pour que le défilement reprenne. La solution serait par conséquent d'écrire un gestionnaire spécial pour le cas où la souris serait sur ce label...
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Points : 26
    Points
    26
    Par défaut
    Bonjour gvasseur58,

    Merci de ta réponse.

    Sinon c'est bien ce que je pensais donc je vais opter pour cette solution.

    Surtout que je viens d'installer Lazarus 1.4 et qu'ils ont implémenté le MouseWheel sur beaucoup de de composants (la version que j'avais ne les avait pas) donc ca va être plutôt simple.

    @+

Discussions similaires

  1. Désactiver redirection d'un lien lors d'un clic sur élément enfant
    Par zouuc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/07/2014, 08h44
  2. Scroll sur un élément ne fonctionne pas
    Par PatSan dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/06/2013, 01h33
  3. Scrolling sur le premier élément d'une listview
    Par al2000 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 19/04/2009, 21h57
  4. [Flash MX] Actualisation scroll sur texte dynamique
    Par Gothico dans le forum Flash
    Réponses: 2
    Dernier message: 23/09/2004, 14h42
  5. Scrolling sur un TMemo
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/08/2004, 09h17

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