Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Скрытие каретки в RichEdit


Автор: Компоратор 12.5.2007, 12:49
Насчет вопроса не глумитесь... smile

Вот эта штука (каретка вроде бы называется? Если нет, поправьте), которая моргает рядом с набираемым текстом - ее в RichEdit как-нибудь можно убрать? Только так, чтоб возможность выделения текста осталась. Пытался об этом инфу нарыть - ничего не нашел :(.

Автор: Yanis 12.5.2007, 14:25
DRKB
Цитата(DRKB)

Создайте своего потомка с обработчиками: 
Код
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);

Автор: Компоратор 13.5.2007, 12:11
Работает smile. Во как я сделал:

Код

type
TNewRich = class(TRichEdit)
     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;

{ TNewRich }

procedure TNewRich.WMNCHitTest(var Msg: TMessage);
begin
  inherited;
  HideCaret(Handle);
end;

procedure TNewRich.WMPaint(var Msg: TMessage);
begin
  inherited;
  HideCaret(Handle);
end;

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

procedure TForm1.FormShow(Sender: TObject);
var
  NewRich: TNewRich;
begin
   NewRich := TNewRich.Create(self);
   NewRich.Parent := self;
   NewRich.Show;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)