Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Постраничная прокрутка Memo, когда фокус находится на Edit

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

Постраничная прокрутка Memo, когда фокус находится на Edit


procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F8 then
    SendMessage(Memo1.Handle, { HWND для Memo }
      WM_VSCROLL, { сообщение Windows }
      SB_PAGEDOWN, {на страницу вниз }
      0) { не используется }
  else if Key = VK_F7 then
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEUP, 0);
end;

Перевод:

Код, который вы предоставили, является частью обработчика события для контрола TForm1.Edit1 в приложении на Delphi. Обработчик событий отвечает на событие KeyDown, что означает, что он будет вызван всякий раз, когда пользователь нажимает кнопку клавиатуры, а контрол Edit1 имеет фокус.

В этом конкретном реализации обработчика событий проверяется, является ли нажатая кнопка либо F7, либо F8 (коды VK для этих клавиш). Если нажатая кнопка - F8, то отправляется сообщение вертикального скроллинга (WM_VSCROLL) контролу Memo1 с запросом на прокрутку вниз на одну страницу. Если нажатая кнопка - F7, то отправляется аналогичное сообщение, но с запросом на прокрутку вверх на одну страницу.

Почему это код полезен? Он позволяет пользователям навигировать через большие текстовые содержимое контрола Memo1 с помощью кратких клавиш (F8 для прокрутки вниз и F7 для прокрутки вверх). Это может быть особенно полезно при работе с длинными документами или журналами, где прокрутка может быть скучной.

Вот альтернативное решение:

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_F8) or (Key = VK_F7) then
  begin
    if Key = VK_F8 then
      Memo1.ScrollDown
    else
      Memo1.ScrollUp;
  end;
end;

Альтернативное решение достигает того же результата, что и оригинальный код, но более компактно и легко читаемо. Он использует методы ScrollDown и ScrollUp контрола TMemo, а не отправляет сообщение напрямую в handle окна контрола. Это делает код более типичным для Delphi и легче понимаемым для разработчиков, знакомых с фреймворком.

В статье описывается реализация постраничной прокруткиMemo компонента при фокусировании на Edit компоненте с помощью события KeyDown и SendMessage для отправки сообщения WM_VSCROLL.


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


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

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 16:28:33/0.010324954986572/2