delphitextboxcaret

How to hide caret in Delphi TEdit?


I want to remove the caret from a TEdit control in Delphi. I have made the component Enabled := False but the caret still appears. My question is how to remove the caret from a disabled TEdit control?


Solution

  • I assume that you mean TEdit control.

    The solution is HideCaret function, the only problem is where to call it. The 2 event handlers below worked fine for me:

    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;