Карта сайта 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.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 19:47:44/0.0061571598052979/2