TextBox

Fantom94420 Messages postés 5 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 23 juin 2012 - 22 avril 2011 à 13:40
Fantom94420 Messages postés 5 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 23 juin 2012 - 23 avril 2011 à 20:30
Bonjour, alors voilà je vous explique :

J'ai une textBox (Qui se remplit, toute seul, progressivement), et je voudrais que toute les 20 lignes, elle m'envoie ce qu'elle contient

Voilà, je débute =P

Merci d'avance.

10 réponses

cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
22 avril 2011 à 13:52
Bonjour,

Elle se remplit toute seule, oui mais de quelle manière ? et pour envoyer où ?

Si la txtBox est visible tu dois voir ce qu'elle contient ! utilises les ScrollBars...

Formules, stp, ta demande avec plus de précisions pour que l'on puisse t'aider.

Cheyenne
0
Fantom94420 Messages postés 5 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 23 juin 2012
22 avril 2011 à 14:08
elle enregistre les frappe de mon clavier.
donc elle se remplit tout seul, je vois effectivement ce qu'il y a dessus, mais je voudrais simplement que toute les 20 lignes elle m'envoie ce qu'elle contient (je sais déjà comment faire pour le mail)

Voilà, il me faut simplement une solution pour que toute les 20 lignes, il me send

Désolé pour ma formulation, je ne connais pas tout les thermes techniques

Merci d'avance.
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
22 avril 2011 à 15:26
Re,

Non elle ne se remplit pas toute seule, c'est toi qui l'alimente.
Si j'ai bien compris tu veux t'envoyer un mail à chaque vingtaine de ligne rentrées dans la TextBox.

Tu peux te servir des retours chariots pour compter tes lignes. Il faut alors utiliser les propriétés SelStart, SelLength et SelText du composant.
Tu peux aussi faire un Split sur le caractère ASCII 13 et tu regroupes par paquets de 20 en tenant à jour le nombre de paquets envoyés.

Tout dépend aussi de ce que tu entends par 20 lignes, car si Multiline est à True, tu auras peut-être 30 lignes dans la TextBox alors que tu n'as que 20 retours à la ligne.

Cheyenne
0
Fantom94420 Messages postés 5 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 23 juin 2012
22 avril 2011 à 15:51
Merci de ta réponse, mais il me faudrait un exemple, car comme tu l'auras compris, je débute
0

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

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
22 avril 2011 à 16:00
Re,

Tu peux utiliser le code suivant :
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" ( _
        ByVal hwnd As Long, _
        ByVal wMsg As Long, _
        ByVal wParam As Long, _
        ByVal lParam As Long _
        ) As Long

Private Const EM_GETLINECOUNT = &HBA


Dans l'évènement Change de la TexBox tu peux savoir à combien de lignes tu es rendu avec
nLignes = SendMessageLong(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)

Tu comptes les caractères rentrés et au moment où tu atteins 20 lignes tu mémorises alors le SelStart. Puis au prochaines 20 lignes tu te sers de SelLength et de SelText pour t'envoyer le texte.

En espérant avoir pu t'aider,

Cheyenne
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
22 avril 2011 à 16:11
Re,

Tu essayes de faire le code par toi-même, sinon tu ne progresseras pas.
C'est en forgeant que l'on devient forgeron

Envoies alors la portion de code sur laquelle tu as des difficultés et seulement là on pourra t'aider.

Tu peux également faire une recherche sur le site pour avoir des exemples, mais ce n'est pas à nous de le faire ta place.

Ne prends pas mal ces propos mais c'est plus pour t'aider que de te fâcher.

Cependant n'hésites pas à poser des questions.

Cheyenne
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 avril 2011 à 16:22
Salut

Chaque ligne se terminant (au moins) par vbLf, il te suffit de les compter pour détecter la vingtième :
- Remplir un tableau avec chaque ligne
Dim aLignes() As String
aLignes = Split(maTextBox.Text, vbLf)
- Compter les lignes :
UBound(aLignes)
sachant que les index d'un tableau commencent à 0, le nombre de lignes sera donc de UBound(...) + 1

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
22 avril 2011 à 16:22
Re,

Précision :
Avec le code envoyé, il faut tenir compte du fait que cela compte les lignes de la TextBox, mais il s'agit des lignes que tu vois et non pas du nombre de lignes réels séparées par un retour chariot.
En effet le nombre de lignes varie en fonction de la taille de la TextBox et de la police utilisée.
C'est pourquoi je préconisais en premier lieu de compter les retours chariots. Ainsi tu es sûr d'avoir 20 "vraies" lignes.

Bonne prog,

Cheyenne
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
22 avril 2011 à 16:34
Bonjour Jack,

Il faut peut-être mieux faire un Split sur vbCrLf, ce qui lui éviterait d'avoir le Chr$(13) dans le texte à envoyer.

Cheyenne
0
Fantom94420 Messages postés 5 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 23 juin 2012
23 avril 2011 à 20:30
Merci de vos réponses, cela m'a beaucoup aidé
0
Rejoignez-nous