Richtextbox

Résolu
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 - 22 sept. 2009 à 02:46
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 - 6 oct. 2009 à 17:11
bonsoir

y a t-il un moyen ou exemple claire qui montre comment on peut remplir un richtextbox avec sendmessage ou autre fonction sans utilisé sellenght et seltext et lentext ... ?
ce que je veux faire c'est ajouter un texte dans un richtextbox sans utilisé lentext et sans faire bouger le scrolbar ou le texte quand le curseur n'est pas à la fin du texte.
en gros comme sur msn, par exemple kelk1 te parle et tu fait monté la conversation plus haut pour vérifier une phrase au même temps la la personne t'envoie un autre message mais le texte ne défile pas et reste la ou tu cherche et la scrolbar non plus.
j'espère qu'il y a une solution parce que sa fait plus que deux moi que je suis bloqué sur ce truc.

merci d'avance

17 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 sept. 2009 à 00:24
retour à la case départ

quel code as tu fais sur à l'avancée de CE PRESENT post !!

où se trouve le LOCKWINDOWUPDATE que j'ai indiqué?!

où se trouve (comem tu le signalais) la gestion des messages colorés?...
3
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
3 oct. 2009 à 15:34
bonjour
je vais voir avec LockWindowUpdate
merci
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 sept. 2009 à 04:16
salut,

la scroll ne bouge jamais toute seule, le texte ne descend jamais la scroll tout seul!

c'est toi qui fait un .selstart = len(.text)
à toi de ne pas executer le code si (simple test IF) la ligne en cours de "visibilité" (code donné dans un précédent message) n'est pas la dernière visible

[hr]
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
22 sept. 2009 à 11:23
bonjour

oui je sais que c'est moi qui fait un selstart = len(*.text) mais je suis obliger de le faire pour ajouter du text dans la RTB sinon je vois pas comment en ajouter c'est sa mon problème, parce que si l'utilisateur défile le text en haut et clic par exemple sur un text pour le selectioner la position du curseur va changer et comme sa si je 'ajoute du text sans utiliser la selstart sa va l'ajouter ou le curseur est positioné sa veut dire au milieu du texte et pour cela j'ai poser ma question dans ce sujet

merci encore.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 sept. 2009 à 11:50
.... UN SIMPLE IF
à toi de ne pas executer ton code si...... tu ne veux pas

Private Sub Command1_Click()
    Dim bMustScroll As Boolean
    With RichTextBox1
        bMustScroll (.SelStart Len(.Text))
        If bMustScroll Then
            .SelText = Text1.Text
            .SelStart = Len(.Text)
        Else
            .Text = .Text & Text1.Text
        End If
    End With
End Sub
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
24 sept. 2009 à 15:13
bonjour
ton code fonctionne bien mais j'utilise pas la même méthode que toi pour remplir mon texte,
j'utilise un code comme sa:
public sub add_text (txt as richtextbox,msg)
- ici je parcoure le message caractère par caractère afin de changer les couleurs vue que c'est message qui vient de l'irc.
- si je doit changer de couleur par exemple je doit faire un selstar = len(txt.text) puis changer la couleur
- sinon j'ajoute le text ici
end sub

donc je fait pas de text.text = text.text & text..

merci encore et ta réponse m'aide vraiment.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 sept. 2009 à 16:19
toujours tout expliquer en 5 fois, çà ne m'étonne pas du tout que tu aies ouvert près de 20 topics encore et toujours pour çà !!!


bref => si tu DOIS utiliser selstart et seltext (ce que tu dis maintenant alors que dans ta question tu dis vouloir "une solution" sans ces méthodes....), fais l'inverse : repère le selstart avant ton ajout (toujours avec ton test IF, uneVar = ...), fait ton ajout coloré, puis replace le caret à l'ancienne position
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
29 sept. 2009 à 15:17
bonjour

merci pour ta solution mais sans l'essayer je vois qu'elle répond pas à ma question,
suposant que j'ai richtextbox qui contient 500 lignes par exemple, et je vais faire l'ajout, je repere que le curseure est dans la 05eme ligne disant dans le 250eme caractere, si je fait l'ajout avec selstart = len(richtextbox.text) puis l'ajout: le scrol va bouger à la position du curseur puis je le remet à la 1ere position (5eme lignes) le scrol va remonté et reprendre sa 1ere position donc la le scrol va bouger et le text aussi.
et pour la 1ere solution que vous m'avez donné (PCPT) un code qui fonctionne si on touche pas le richtextbox, par exemple si tu met ce code dans un timer qui ajoute le text toute les secondes, sa va marché mais si tu clic sur le richtextbox il va automatiquement ajouter du text et mettre le curseur au debut (selstart = 0) comme sa le scrol va monté aussi.
voila je repose ma question :
suposant que vous etes sur msn, vous parlez à quelqu'un, votre discution est un peut longue donc le scrol s'affiche et decend automatiquement avec la conversation, puis maintenant vous montez le scrol pour copier une phrase au debut de votre conversation (la phrase 10), maintenant vous etes placer au debut de la conversation et le scrol aussi, a ce moment la personne avec qui vous parlez vous parle donc elle vous envoi toujours des messages, le text s'ajoute en bas de votre conversation sans que le text bouge ni la scrolbar non plus,
voila je veux faire comme sa mais j'y arrive pas (désolé si j'ai posé cette question plusieurs fois mais c'est parce que j'ai pas trouvé la solution et aussi c'est le seule forum sur lequel je pose mes questions

merci d'avance
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 sept. 2009 à 21:29
reste à bloquer le mouvement de la scroll avec ma 2e proposition (que tu n'as pas essayé... (4 jours ont passé) ) par API, simplement :
LockWindowUpdate


ps : il y a plusieurs semaines (peut-être même plusieurs mois) je t'ai donné un lien, une classe de gestion des RTBox, avec gestion des couleurs, des positions, etc....

à défaut que cette classe ne te serve en intégralité, plusieurs des questions que tu as posé depuis ont leur réponse dans cette classe!!

si tu ne fournies aucun effort - ce qui est malheureusement le cas - peu de membres continueront à te répondre...
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
29 sept. 2009 à 23:10
bonsoir
je crois que tu te trompe de personne :o de quelle classe tu parle :s
en plus ta deuxième réponse je t'avais dit c'est quoi le problème dans mon message précèdent,
a tu essayer ce que j'ai dit stp ? si sa fonctionne pour toi alors il y a un grand problème soit je comprend rien de ce que tu ma dit et je l'ai pas fait correctement soit le code ne fait pas ce que je cherche a faire.
merci encore
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 sept. 2009 à 23:24
ma 2e réponse ne montre pas de code, quels sont donc tes tests, code à l'appui?!

je ne me trompe pas non, et la classe dont je parlais se trouve dans mon profil
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
30 sept. 2009 à 00:03
bonsoir
voila j'ai fait un exemple de mon code (il faut ajouté un contrl rtb nomé richtextbox et activé les scrolbar et multiligne et ajouter un timer1) :

Private Sub Timer1_Timer()
Dim txt As String
txt = "cei est un message de text" & vbCrLf
addtext RichTextBox1, txt
End Sub

Function addtext(rtb As RichTextBox, msg As String)
rtb.SelStart = Len(rtb.Text)
rtb.SelText = msg '<============= ici j'ajoute le text a la fin du continu de la richtextbox et je veux pas que la scrolbar bouge si elle est au milieu voila
End Function

merci
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
30 sept. 2009 à 01:02
c'est juste un exemple sans le traitement de couleur parce que j'ai pas de problème avec le traitement de couleur juste je vous ai fourni le code nécessaire que je veux modifié.
sa ajoute le texte avec selstart et seltext et la scrolbar bouge et je trouve vraiment pas comment l'ajouté mais si tu veut je peut te fournir mon code de traitement de couleur
merci encore
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 sept. 2009 à 01:23
mais si tu veut je peut te fournir mon code


... non pas forcément, on peut également se demander des confirmations de confirmations de confirmations in eternam....

ton code "posant problème" (puisque c'est bien le cas, au final : toute ta procédure d'ajout de texte!!) aurait dû être indiqué dès ta question déjà

et voilà une semaine de passée, perdue pour tous

après rien d'étonnant que tu fasses des UP sur d'autres de tes topics datant de 4 mois, seulement çà n'est qu'usant...


rappel :

# On fait une recherche (forum / sources / tutoriels / Codyx.org / CodyxBot / Search.CodeS-SourceS.Com) avant de poster une question.
90% des questions posées quotidiennement sont déjà présentes et résolues.
# On demande une explication ou de l'aide sur un sujet précis, on ne l'exige pas!
N'oubliez pas que vous vous adressez à des membres bénévoles qui vont partager de leur temps et leurs connaissances afin de vous aider Vous vous devez de garder cet esprit communautaire en tête ;-)
# On pose une question aussi précise que possible.
Répondre prend parfois beaucoup de temps. inutile d'en ajouter par des échanges n'étant que des reformulations. relisez-vous...
# On précise les détails du problème : contexte, langage, message d'erreur, etc.
# On pense à donner le bout de code qui pose problème et à préciser le langage utilisé.
C# n'est pas C++, VBA n'est pas VB6, etc... vérifiez le thème où vous postez.
# On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret.
Dirigez-vous directement dans la recherche de sources pour les programmes complets. Inutile de demander du "code tout cuit", vous n'obtiendrez aucune réponse.
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
30 sept. 2009 à 01:40
merci pour le rappel mais je comprend pas ce que je dois faire maintenant
je dois fournir tout mon code ? ou je dois abandonné ? ou quoi

merci
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
6 oct. 2009 à 11:22
bonjour , j'ai toujours pas réussi a trouver la solution
voila un exemple de mon code ( il faut mettre 1 richtextbox1 + timer1(interval 300) + command1 :


Private Sub Command1_Click()
If Timer1.Enabled True Then Timer1.Enabled False Else Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim txt As String
txt = "salut #c'est un message de &test " & vbCrLf
addtexttortb RichTextBox1, txt
End Sub
Private Function addtexttortb(rtb As RichTextBox, txt As String)
Dim spl As String, i As Long
rtb.SelStart = Len(rtb.text)
rtb.SelLength = Len(rtb.text)
rtb.SelColor = vbBlack
For i = 1 To Len(txt)
spl = Mid(txt, i, 1)
Select Case spl
Case "#"
rtb.SelStart = Len(rtb.text)
rtb.SelLength = Len(txt)
rtb.SelColor = vbRed
Case "&"
rtb.SelStart = Len(rtb.text)
rtb.SelLength = Len(txt)
rtb.SelColor = vbBlue
Case Else
rtb.SelStart = Len(rtb.text)
rtb.SelLength = Len(txt)
rtb.SelText = spl
End Select
Next
End Function



merci d'avance et désolé pour le derrangement
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
6 oct. 2009 à 17:11
SVP aidez moi SVP
0
Rejoignez-nous