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

Как запретить показ курсора в TEdit и ему подобных контролах

Delphi , ОС и Железо , Мышка и Курсор

Как запретить показ курсора в TEdit и ему подобных контролах


Коврик для мышки выполнил недопустимую операцию и будет свернут.

Создайте своего потомка с обработчиками:


procedure WMPaint(var Msg: TMessage); message WM_Paint;
procedure WMSetFocus(var Msg: TMessage); message WM_SetFocus;
procedure WMNCHitTest(var Msg: TMessage); message WM_NCHitTest;

в которых вызывайте:


inherited;
HideCaret(Handle);

Программирование на Delphi: скрытие курсора в текстовом поле

Чтобы предотвратить отображение курсора в контроле TEdit и аналогичных контролах, можно использовать функцию HideCaret. Эта функция скрывает курсор (курсор) в окне.

Вот как это сделать:

  1. Создайте новый класс, наследуясь от TEdit, например:
type
  TNoCursorEdit = class(TEdit)
  private
    procedure WMPaint(var Msg: TMessage); message WM_Paint;
    procedure WMSetFocus(var Msg: TMessage); message WM_SetFocus;
    procedure WMNCHitTest(var Msg: TMessage); message WM_NCHitTest;
  end;

var
  MyEdit: TNoCursorEdit;
  1. Реализуйте процедуры WMPaint, WMSetFocus и WMNCHitTest:
procedure TNoCursorEdit.WMPaint(var Msg: TMessage);
begin
  inherited;
  HideCaret(Handle);
end;

procedure TNoCursorEdit.WMSetFocus(var Msg: TMessage);
begin
  inherited;
  HideCaret(Handle);
end;

procedure TNoCursorEdit.WMNCHitTest(var Msg: TMessage);
begin
  Result := HTCLIENT; // Возвращаем результат теста по клиентской области
  HideCaret(Handle);
end;

В этих процедурах вызовите функцию HideCaret, чтобы скрыть курсор.

  1. Создайте экземпляр вашего нового класса и используйте его в форме:
MyEdit := TNoCursorEdit.Create(Self);
MyEdit.Parent := Self;
MyEdit.Align := alClient;

Таким образом, можно предотвратить отображение курсора в контроле TEdit или аналогичных контролах. Обратите внимание, что это скроет курсор только для этого конкретного контрола и не для других окон.

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

Запретить показ курсора в TEdit и его аналогичных контролах можно с помощью обработчиков сообщений WM_Paint, WM_SetFocus и WM_NCHitTest, которые вызывают процедуру HideCaret для скрывания курсора.


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

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




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


:: Главная :: Мышка и Курсор ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-17 20:46:17/0.003446102142334/0