1. Comment obtenir le numéro de ligne actuel
Lorsque vous utilisez le contrôle RichEdit (ou mémo) pour créer un éditeur de texte, vous pouvez obtenir le nombre total de lignes en accédant à l'attribut lines??count. Cependant, il est difficile de connaître le numéro de ligne de la ligne où se trouve actuellement le curseur. localisé, car Delphi ne fournit pas cet attribut. Pour implémenter cette fonction essentielle de l'éditeur, em_ LineFromChar doit être appelé. Veuillez essayer la procédure ci-dessous.
Organisez d'abord un RichEdit ou un mémo (éditeur nommé) et un bouton dans la fenêtre. Écrivez le code suivant dans l'événement onclick du bouton.
var
LigneActuelle : Entier ;
commencer
CurrentLine:=Editor??Perform(em_ LineFromChar,SFFFF,0);
application??MessageBox(PChar('Le numéro de ligne actuel est'+IntToStr(CurrentLine)),'Message',mb_ iconinformation);
fin;
Notez que la première ligne a un numéro de ligne zéro.
2. Comment annuler une opération (annuler)
Pour mémoire, aucune programmation n'est requise pour implémenter l'annulation. Tant que l'attribut popupmenu est vide, un menu d'opérations commun peut être activé avec le bouton droit de la souris pendant l'exécution, comprenant six éléments : annuler, couper, copier, coller, supprimer et sélectionner. tous. .
Mais malheureusement, cette méthode ne fonctionne pas pour le puissant contrôle RichEdit, nous devons donc concevoir nous-mêmes un popupmemu. Lorsque vous utilisez CutToClipBoard et d'autres instructions pour exécuter facilement et en douceur des fonctions telles que "couper", vous serez impuissant de constater que vous ne trouvez pas d'instructions telles que annuler ou annuler pour effectuer "annuler".
À ce stade, vous devez le gérer comme ceci :
RichEdit1??Perform(EM_UNDO,0,0);
Vous devez également vérifier si l'annulation est autorisée, activant ou désactivant ainsi l'élément « Annuler » dans le menu contextuel :
Annuler1??Enabled:=RichEdit??Perform(EM_CANUNDO,0,0)<>0;
Le programme ci-dessus a réussi le débogage dans Delphi3