1. Как получить текущий номер строки
При использовании элемента управления RichEdit (или memo) для создания текстового редактора вы можете получить общее количество строк, обратившись к атрибуту «lines??count». Однако узнать номер строки, в которой в данный момент находится курсор, затруднительно. находится, поскольку Delphi не предоставляет этот атрибут. Чтобы реализовать эту важную функцию редактора, необходимо вызвать em_ LineFromChar. Пожалуйста, попробуйте процедуру ниже.
Сначала расположите RichEdit или заметку (имя редактора) и кнопку в окне. Напишите следующий код в событии onclick кнопки.
вар
Текущаястрока: целое число;
начинать
CurrentLine:=Editor??Perform(em_ LineFromChar,SFFFF,0);
application??MessageBox(PChar('Текущий номер строки'+IntToStr(CurrentLine)),'Message',mb_ iconinformation);
конец;
Обратите внимание, что первая строка имеет номер строки, равный нулю.
2. Как отменить операцию (отменить)
Для заметок не требуется никакого программирования для реализации отмены. Пока атрибут popupmenu пуст, во время выполнения правой кнопкой мыши можно активировать общее меню операций, включающее шесть пунктов: отменить, вырезать, скопировать, вставить, удалить и выбрать. все. .
Но, к сожалению, этот метод не работает для мощного элемента управления RichEdit, поэтому нам придется создавать popupmemu самостоятельно. Когда вы используете CutToClipBoard и другие операторы для простого и плавного выполнения таких функций, как «вырезать», вы будете беспомощны, обнаружив, что не можете найти такие операторы, как undo или cancel, для выполнения «отмены».
На данный момент вам нужно справиться с этим следующим образом:
RichEdit1??Perform(EM_UNDO,0,0);
Также следует проверить, разрешена ли отмена, тем самым включив или выключив пункт «Отменить» во всплывающем меню:
Отменить1??Включено:=RichEdit??Perform(EM_CANUNDO,0,0)<>0;
Вышеуказанная программа прошла отладку в Delphi3.