22 Voix

Lazarus: Obtenir l'index de la ligne actuel de Memo

Question de Invité | 01/05/2022 à 10:43

Je voudrais récupérer l'index de la ligne dans laquelle l'utilisateur écrit actuellement à partir d'un TMemo.

Malheureusement, mes recherches précédentes n'ont mis en lumière que des solutions pour Delphi avec lesquelles il devrait être possible de déterminer la ligne et la colonne actuelles dans un Memo comme ça:

Line   := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0) ;
Column := Memo1.SelStart - Memo1.Perform(EM_LINEINDEX, Line, 0) ;

En Lazarus, cela ne fonctionne pas (message d'erreur: "Identifier not found / Identifier non trouvé EM_LINEFROMCHAR"). Quelqu'un a-t-il une solution?

RépondrePositifNégatifDateVoix
2Meilleure Réponse2 Voix

C'est beaucoup plus facile.

Essayez simplement ceci:

Line   := Memo1.CaretPos.Y;
Column := Memo1.CaretPos.X;

CaretPos est la position du curseur. Il a une variable X et Y dans laquelle les valeurs que vous recherchez sont stockées.

Pour autant que je sache, "Perform" et "EM_LINEFROMCHAR" sont typiques pour le monde de Windows et nous ne pouvons pas les utiliser dans la plate-forme indépendante Lazarus.
01/05/2022 à 20:32

RépondrePositif Négatif
00 Voix

La réponse donnée par l'autre invité est la meilleure solution.

De plus, si vous vouliez suivre votre itinéraire d'origine, vous devez spécifier "Windows" dans la section Uses.
01/05/2022 à 23:11

RépondrePositif Négatif
Répondre

Sujets Connexes

MySQL: Sauts de Ligne dans MySQL

Conseil | 0 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.