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 :

Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 020
    Points
    2 020
    Par défaut Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Bonjour,

    J'ai un TRichEdit avec la propriété ScrollBars = ssVertical

    Quand il y a peu de lignes, ce scroll est invisible et il s'autoactive dès que le nb de lignes dépasse la hauteur du control. Tout est normal jusque là.

    Mon pb est justement de savoir si le scroll est, à un moment précis, visible ou pas (ou si le nb de ligne dépasse la hauteur d'affichage - cela reviens au même - une des deux infos me suffit).

    En effet, ce control est l'enfant d'un contôle personnalisé qui lui aussi à un scroll. Mon pb concerne la gestion de la molette : si le rtf n'a pas de scroll, la molette fait bouger le scroll du parent, mais si le scroll du rtf est visible, alors mon parent ne doit plus intercepter les evenement scroll.

    J'ai essayé, comme le dit la doc de mettre la variable handle à false dans le OnMouseWheel event du rtf, pour qu'il ne gère jamais la roulette (ce qui à la limite me suffirais) mais le résultat n'a pas été probant : les 2 scrolls interceptent l'événement.

    A l'aide !!!

    Salutations
    Vanquish
    --
    vanquish

  2. #2
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Salut,

    Ce code là marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (GetWindowlong(RichEdit1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then 
      ShowMessage('Le scrollbar vertical est visible'); 
     
    if (GetWindowlong(RichEdit1.Handle, GWL_STYLE) and WS_HSCROLL) <> 0 then 
      ShowMessage('Le scrollbar horizontal est visible');
    A+,

    Seb.
    Avant de poser votre question merci de regarder :
    La FAQ Delphi (430 Questions / Réponses)
    ou les cours et tutoriels Delphi.

  3. #3
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 020
    Points
    2 020
    Par défaut
    Exactement ce qu'il me fallait.
    Ca marche super !!

    Merci beacoup
    --
    vanquish

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

Discussions similaires

  1. [transmission-daemon] comment fair epour savoir si les torrents sont morts
    Par mapmip dans le forum Logiciels Libres & Open Source
    Réponses: 0
    Dernier message: 13/05/2015, 17h55
  2. [WP7] Comment savoir que les données sont toutes chargées
    Par Thierry12 dans le forum Windows Phone
    Réponses: 0
    Dernier message: 14/12/2010, 21h12
  3. [Dojo] dijit.tree :comment savoir si les childs d'un item sont déja chargé (dojo 1.4)
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 15/03/2010, 12h49
  4. Réponses: 1
    Dernier message: 14/05/2007, 19h35
  5. Réponses: 4
    Dernier message: 16/08/2003, 13h21

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