Как скрыть каретку в Delphi TEdit? - PullRequest
3 голосов
/ 05 октября 2011

Я хочу удалить каретку из элемента управления TEdit в Delphi. Я сделал компонент Enabled := False, но каретка все еще появляется. У меня вопрос, как удалить каретку из отключенного элемента управления TEdit?

Ответы [ 2 ]

7 голосов
/ 05 октября 2011

Я предполагаю, что вы имеете в виду TEdit контроль.

Решением является HideCaret функция, единственная проблема в том, где ее вызвать. 2 обработчика событий ниже работали для меня нормально:

procedure TForm18.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  HideCaret(Edit1.Handle);
end;

procedure TForm18.Edit1MouseEnter(Sender: TObject);
begin
  HideCaret(Edit1.Handle);
end;
0 голосов
/ 05 сентября 2016

Поместите элемент управления TApplicationEvents в форму, а в событии OnIdle скройте каретку следующим образом. Установите для события значение nil, чтобы оно срабатывало только один раз.

procedure TFormMain.AppEventsIdle(Sender: TObject; var Done: Boolean);
begin
  AppEvents.OnIdle := nil;
  HideCaret(Memo1.Handle);
end;
...