Recherche index de debut de ligne dans RichTextBox, PS: devient fou !

cs_magicgus Messages postés 206 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 14 septembre 2011 - 9 janv. 2009 à 13:58
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 janv. 2009 à 15:12
Bonjour, j'ai chercher un peu partout mais je n'ai pas réussi à trouver precisement !

Je veut faire une coloration syntaxique comme par exemple l'ide de vb6 le fait, ligne par ligne, je m'explique :

Les rares coloration syntaxique que j'ai vu traite le contenu de tout un RichTextBox d'un coup !
Moi je veut faire la color en temp réel et pour ne pas bouffer toutes les ressources du pc, qu'a chaque ajout de caractères il n'ait pas à me recoloriser 700 lignes d'une classe PHP par exemple, en fait je veut traiter seulement le contenu de la ligne en cours.

Donc je m'en suis aller chercher toutes les valeurs en temps réel de positionnement dans un RichTextBox et j'ai trouver les choses suivantes :

- Position courrante du marqueur,
- Début du texte (premier caractère du RTF)
- Fin de texte (dernier caractère du RTF)
- Ligne courrante
- Nombre total de ligne
- Dernier caractère de la ligne (avec recherche de passage à la ligne)

Mais voilà, pas moyen de trouver la position du premier caractère de la ligne en cours !!!
Il faudrais pour ça que je puisse soit trouver le passage à la ligne précedent soit le nombre de caractère de la ligne en cours...

Je penser faire une recherche en sens inverse pour recherche le passage à la ligne précedent, pas possible, en tout cas pas avec les methodes disponible par défault, donc du coup je me suis dit que j'alais faire une recherche dans le bon sens de la ligne précedente, pas moyen de pointer vers la lignes précedentes avec le n° de ligne (on se demande à quoi il sert !)

Bref je suis perdu et un peut saouler, comme d'hab je me rend compte de la débilité de conception de certain contrôles MS, il code vraiment comme des {#~~[[#...

Y'a une jolie fonction GetLineFromChar qui renvoie la ligne courante mais on ne peut rien en faire !!!
N'aurait il pas pus faire soit une fonction du genre CharCountFromLine ou bien faire une recherche en sens inverse du genre Variable =RichTextBox1.find("toto", 15, -38)

Bref si qqun connait la solution, merci, moi je continue à chercher,

Recément je me suis mis au JavaScript et PHP ces language me fesait peur, mais malgré mes 10 ans de vb6 j'arrive à un résultat beaucoup plus rapidement en PHP alors que j'ai commencer y a une semaine ! Devrais-je me mettre au c# ou java ?

Guillaume

1 réponse

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 janv. 2009 à 15:12
tout simplement:

Sendmessage avec EM_LINEINDEX

http://msdn.microsoft.com/en-us/library/bb761611(VS.85).aspx
0
Rejoignez-nous