Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 2010
-
22 sept. 2009 à 02:46
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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..
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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...
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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
# 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.
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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