Descendre la barre d'une textbox tout en bas [Résolu]

Signaler
Messages postés
24
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
8 septembre 2009
-
Messages postés
24
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
8 septembre 2009
-
Bonjour

Je suis en train de programmer un BOT irc la v 0.4
Par contre, j'aimerais que sur le terminal du bot, la ScrollBar descendent tout en bas quand une requêtes entrantes ou sortante est affichée dans le terminal.

Sur ce, je vous remercie tous et toutes a l'avance
Metton Production 2008

7 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,
le code proposé te le montre
'API declares:
Declare Function PutFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

'Function to scroll virtually any box that has this capability:
Function ScrollText(MyControl As Control, vLines As Integer) As Long
      Dim Success As Long
      Dim SavedWnd As Long
      Dim R As Long
      Dim Lines As Double
      Const EM_LINESCROLL = &HB6
      ' Get the window handle of the control that currently has the focus
      SavedWnd = Screen.ActiveControl.hwnd
      Lines = vLines
      ' Set the focus to the passed control.
      MyControl.SetFocus
      ' Scroll the lines.
      Success = SendMessage(MyControl.hwnd, EM_LINESCROLL, 0, Lines)
      ' Restore the focus to the original control.
      R = PutFocus(SavedWnd)
      ' Return the number of lines actually scrolled.
      ScrollText = Success
End Function<hr />
'Example on how you use it:
Call ScrollText(Text1, 20)
'This example scrolls the text1 textbox 20 lines downward. If you want to scroll down to the bottom, make sure you specify more lines than max possible content!

, ----
[../code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,
Est ce que tu dois forcément utiliser une textbox? sinon tu peux utiliser une Listbox et après chaque jout à cette listbox, faire
NomListBox.ListIndex = NomListBox.ListCount - 1
Ce qui te positionnera sur la dernière ligne
@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,

Il est également possible de se mettre tout en bas dans une textbox (si tu tiens à la textbox)
Text1.SelStart = Len(Text1.Text)
Messages postés
24
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
8 septembre 2009

Le problème c'est qu'il arrive dés fois que les requêtes IRC arrivent en plusieurs lignes. Donc les listbox sa va pas être très facile dans ces cas.

Le problème c'est que sa marche a 50%. Au fait le curseur déscend mais pas la ScrollBar

J'ai mit sa au fait :

Private Sub txtRecu_Change()
    txtRecu.SelStart = Len(txtRecu.Text)
End Sub

Metton Production 2007
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,
Regarde ceci

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
24
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
8 septembre 2009

Ah ! Nouveau problème (désolé).
J'ai put trouver la fonction
Success = SendMessage(MyControl.hwnd, EM_LINESCROLL, 0, Lines)
Grace a l'API Viewer. Mais il y a une fonction que je ne trouve pas :
R = PutFocus(SavedWnd)

Qu'est ce que je doit faire sil vous plait ?
Metton Production 2007
Messages postés
24
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
8 septembre 2009

Ah oui c'est vrai désolé -.-"

Merci de votre patience et a bientôt ++
Metton Production 2007