RichEdit & Souris

Résolu
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 3 oct. 2005 à 09:40
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 5 oct. 2005 à 13:43
Salut,
Est-il possible de connaitre le numéro de la ligne d'un richedit qui se trouve sous le curseur de ma souris ?

Merci par avance.

Shell

5 réponses

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
5 oct. 2005 à 11:35
Oups, je t'ai donné une mauvaise version.
Voici donc un exemple d'utilisaiton du message EM_CHARFROMPOS :

<hr size= "2" width="100%"> procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
PositionCur: TPoint;
PositionChar: Integer;
begin
PositionCur : = Point(X, Y);
PositionChar := RichEdit1.Perform(EM_CHARFROMPOS, 0, Integer(@Position)); Edit1.Text :Format('Pos %d - Carac = %s', [PositionChar, RichEdit1.Text[PositionChar]]);
end ;
<hr size ="2" width="100%">@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
3
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
3 oct. 2005 à 22:05
Voir les coordonnées retournées par la méthode getCaretPos du TRichEdit.


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
4 oct. 2005 à 11:26
La propriété GetCaretPos retourne en effet les numéros de lignes et colonnes courante.
Seuleument, j'aurai besoin de connaitre non pas le numéro de ligne actuelle du TRichEdit, mais le numéro de ligne se trouvant sous le curseur de la souris.

C'est la que je bloque ....

Shell
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
5 oct. 2005 à 11:31
Salut,
Tu peux utiliser le message EM_CHARFROMPOS pour le faire.
Exemple avec un TRichEdit et un TEdit.
<hr size= "2" width="100%"> procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
PositionCur: TPoint;
PositionChar: Integer;
begin
Position : = Point(X, Y);
PositionChar := RichEdit1.Perform(EM_CHARFROMPOS, 0, Integer(@Position)); Edit1.Text :Format('Pos %d - Carac = %s', [X, RichEdit1.Text[X]]);
end ;
<hr size ="2" width="100%">
@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0

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

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
5 oct. 2005 à 13:43
J'ai lu un peu vite la question de detathcrash et je m'en excuse. Effectivement, ma réponse n'est donc pas adaptée .
Bravo Florenth pour ta proposition qui, elle, est nettement adaptée


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
Rejoignez-nous