Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Следование за мышкой в TMemo для установки позиции курсора

Delphi , Компоненты и Классы , TMemo и TRichEdit

Следование за мышкой в TMemo для установки позиции курсора

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
   Y: Integer);
 begin
   Memo1.SelStart  := LoWord(SendMessage(Memo1.Handle, EM_CHARFROMPOS, 0, MakeLParam(X, Y)));
   Memo1.SelLength := 0;
 end;

Процедура обрабатывает событие MouseMove компонента TMemo в Delphi. Цель этой процедуры - обновить позицию выделения в меме при перемещении мыши над ним.

Процедура принимает четыре параметра:

  • Sender: ссылка на объект, который вызвал событие (в этом случае, компонент TMemo).
  • Shift: множество нажатых клавиш сдвига.
  • X и Y: координаты курсора мыши.

В процедуре используется функция SendMessage, чтобы отправить сообщение в handle окна мема. Сообщение - это EM_CHARFROMPOS, которое просит контроль преобразовать указанную позицию (в этом случае, координаты X и Y) в позицию символа.

Функция MakeLParam используется для создания 32-разрядного значения, содержащего высокий байт (координату X) и низкий байт (координату Y). Это значение затем передается как третий аргумент функции SendMessage.

Результативная позиция символа хранится в свойстве SelStart мема, которое задает начальный пункт выделения. Свойство SelLength устанавливается в 0 для очистки любого существующего выделения.

Таким образом, пользователь может перемещать курсор мыши над мемом и иметь выделение, начинающееся с этой позиции.

В статье описывается как использовать событие MouseMove в компоненте TMemo для установки позиции курсора при помощи метода SelStart и отправки сообщения EM_CHARFROMPOS к обработчикуMemo.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TMemo и TRichEdit ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:51:28/0.002655029296875/0