Sélectionner un paragraphe dans un TRichEdit

cs_TabouJr Messages postés 8 Date d'inscription dimanche 17 novembre 2002 Statut Membre Dernière intervention 30 novembre 2002 - 17 nov. 2002 à 19:09
cs_pepper Messages postés 2 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 27 mars 2004 - 27 mars 2004 à 16:04
Bonjour !

J'ai un petit souci : j'aimerais écrire une procédure qui sélectionne le paragraphe (retours chariot limitrophes exclus) contenant la position du curseur. Mais je ne vois absolument pas comment faire...

Si kk'un avait une 'tite idée ou un'tit lien pour moi, ça serait sympa. Merci d'avance.

Tabou Junior

4 réponses

Hy0Ga Messages postés 7 Date d'inscription lundi 4 novembre 2002 Statut Membre Dernière intervention 22 janvier 2003
18 nov. 2002 à 21:08
euhhhhhhhh............
Tu double clique dans ta richedit et il selectionne deja le paragraphe.....

Pourquoi veux tu recréer une procédure ? Décris moi le contexte stp

A+

-----------------------------------
Que la force soit avec nous -
-----------------------------------
0
cs_TabouJr Messages postés 8 Date d'inscription dimanche 17 novembre 2002 Statut Membre Dernière intervention 30 novembre 2002
18 nov. 2002 à 23:59
En fait, je veux que les attributs de formattage de texte (gras, italique, taille, etc...) ne soit applicables que par paragraphes (c'est une option pour un éditeur HTML). Donc forcément, quand l'option est choisie et qu'une demande de mise en forme s'applique, il faut qu'elle s'applique au paragraphe, même si rien n'est sélectionné (utilisation de la position du curseur) ou si une partie seulement du paragraphe est sélectionné. Il faut donc que la sélection soit faite dans le traitement des données, et pas par l'utilisateur.

Pour l'instant, j'ai écrit une procédure SelectRc2Rc(RichEdit : TRichEdit) qui scanne depuis le SelStart en amont puis en aval jusqu'à trouver #13 et #10 qui se suivent. Ca me donne les limites de sélection. Ca marche, mais c'est très long, et je cherche à optimiser tout cela...

Voilà voilà.

Tabou Junior
0
cs_TabouJr Messages postés 8 Date d'inscription dimanche 17 novembre 2002 Statut Membre Dernière intervention 30 novembre 2002
22 nov. 2002 à 02:42
J'ai trouvé !
Je vous copie ci-dessous ma petite procédure :
--------
procedure SelectRc2Rc(RichEdit: TRichEdit);
var y,ds,fs: integer;
begin
y:=SendMessage(RichEdit.Handle,EM_LineFromChar,RichEdit.SelStart,0);
ds:=SendMessage(RichEdit.Handle,EM_LineIndex,y,0);
fs:=SendMessage(RichEdit.Handle,EM_LineIndex,y+1,0);

RichEdit.SelStart:=ds;
RichEdit.SelLength:=fs-ds;
end;
--------
Tabou Junior
0
cs_pepper Messages postés 2 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 27 mars 2004
27 mars 2004 à 16:04
salut,
je viens d'essayer ton script, il marche bien sauf que la sélection ne se fait que sur UNE ligne : celle où se trouve le curseur. Je n'arrive pas à sélectionner le paragraphe entier.
vous savez comment faire?
merci
0
Rejoignez-nous