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

 Delphi Discussion :

Comment faire défiler automatiquement une ScrollBar de Memo?


Sujet :

Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Comment faire défiler automatiquement une ScrollBar de Memo?
    salut, jai fais un pti tchat

    j'ai mis une scrolbar vertical, mais j'ai remarqué que parfois (assez souvent) la scrollbar ne décent pas et donc on ratte ce qui a été écrit ...

    donc ma question est simple : comment y remédier ?

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Tu peux faire un SendMessage (ici je le fais avec un Memo ...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(Memo1.Handle,WM_VSCROLL,SB_BOTTOM,0);
    Ca aura pour but de toujours te mettre en bas du Memo

    A+

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    merci pour la réponse rapide

    c'est la seule manière de le faire ? je pensais plus à un "réglage" de propriété

    mais bon s'il n'y a que cette solution, je prends

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    personne d'autre ?

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    La méthode d'Ero-sennin ne te convient pas ?
    Une ligne simple et efficace.

    @+

  6. #6
    Membre du Club Avatar de zoheir13
    Inscrit en
    Décembre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    si tu travail avec delphi tu peut utulisé l'instruction: Application.ProcessMessage pour le rafrichissement de votre affichage.

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    La méthode d'Ero-sennin ne te convient pas ?
    Une ligne simple et efficace.

    @+
    comme j'ai dis, je voulais savoir s'il y avait moyen de le régler dans les propriétés pour faire défiler automatiquement

    parce que ça m'étonne simule des touches sur le clavier non ?

    enfin si ya rien des les propriété ça va quand même

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    me revoilà

    je remplace le memo par un WebBrowser1 ça n'a pas l'air de fonctionner, vous avez une idée ?

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    J'ai pas trouvé de solution par l'envoie de message, mais j'ai trouvé une chose intéressante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.BtnChargerPageClick(Sender: TObject);
    begin
      WebBrowser1.Navigate('www.google.fr');
    end;
     
    procedure TForm1.BtnAllerEnBasDePageClick(Sender: TObject);
    begin
      WebBrowser1.OleObject.Document.ParentWindow.Scrollto(0, WebBrowser1.OleObject.document.body.scrollHeight);
    end;
    En espérant que celà t'aide!
    A+

    [EDIT]
    On peut le mettre dans l'événement OnProgressChange pour que ça aille tout seul en bas de page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
      ProgressMax: Integer);
    begin
     if Progress = ProgressMax then
       WebBrowser1.OleObject.Document.ParentWindow.Scrollto(0, WebBrowser1.OleObject.document.body.scrollHeight);
    end;

  10. #10
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    merci le 1er code qui fonctionne, je vais l'adapter

  11. #11
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    en faite il fait décendre la scrolbare de quelques lignes ... donc s'il y a trop de ligne, il n'arrive pas jusqu'en bas

  12. #12
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Citation Envoyé par Coussati Voir le message
    en faite il fait décendre la scrolbare de quelques lignes ... donc s'il y a trop de ligne, il n'arrive pas jusqu'en bas
    Ah! J'ai pourtant fait des tests et pour ma part tous sont concluants ...
    Comment as tu fais et aussi avec quel site tu utilises la méthode
    Tu peux nous montrer le code stp pour voir si de mon coté ça fait de même ?
    Merci

  13. #13
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    bah c'est pas pour un site, c'est un tchat que j'ai réalisé (j'avais besoin d'introduire du html)

    donc après l'évènement "réception de ce qu'à dire un membre" le texte du membre en question est ajouté au navigateur et ensuite le code que tu m'as passé est exécuté :


    // ajout de ce qu'à dit un membre puis :

    WebBrowser1.OleObject.Document.ParentWindow.Scrollto(0, WebBrowser1.OleObject.document.body.scrollHeight);

    ça marche bien ...

    mais j'ai remarqué que s'il y a déjà beaucoup de chose de tapé, et je décide d'allé lire ce qu'il s'est dit il y a 1h, et bien si un membre parle, la scrolbare décend mais de quelques lignes uniquement (elle ne décend pas jusqu'en bas de la page)

  14. #14
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Re,

    C'est bizarre ça
    Je ne vois pas pas vraiment d'où ça peut venir en plus ...
    Et je ne sais pas trop comment tu t'y prends pour l'insertion de tes messages dans le TWebBrowser ...

    Je ne sais pas si un Application.ProcessMessages avant d'appeler la méthode de défilement de la ScrollBar y fera quelque chose ...

    Ca m'embête de ne pas pouvoir t'aider plus

Discussions similaires

  1. Faire défiler automatiquement le Scrollbar d'un RichEdit
    Par vincent DD dans le forum Composants VCL
    Réponses: 1
    Dernier message: 14/03/2012, 10h56
  2. comment faire défiler un contenue d'une page
    Par Nad84jia dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 29/12/2011, 15h19
  3. Réponses: 1
    Dernier message: 05/04/2008, 22h03
  4. Comment faire défiler une image dans un DBImage
    Par kolac dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/04/2006, 14h45
  5. comment faire pour qu'une application soit toujours visible ?
    Par goldbar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2004, 15h35

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