如何在Delphi TEdit中隐藏插入符号?

时间:2011-10-05 10:11:53

标签: delphi textbox caret

我想从Delphi中的TEdit控件中删除插入符号。我已经制作了组件Enabled := False但是插入符号仍然出现。 我的问题是如何从禁用的TEdit控件中删除插入符号?

2 个答案:

答案 0 :(得分:7)

我认为你的意思是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;

答案 1 :(得分:0)

在表单上放置TApplicationEvents控件并在OnIdle事件中隐藏插入符号,如下所示。将事件设置为nil,因此它只会触发一次。

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