如何在Delphi TEdit中隐藏插入符号?
我想从Delphi中的TEdit控件中删除插入符号。我已启用组件如何在Delphi TEdit中隐藏插入符号?,delphi,textbox,caret,Delphi,Textbox,Caret,我想从Delphi中的TEdit控件中删除插入符号。我已启用组件:=False,但插入符号仍然出现。 我的问题是如何从禁用的TEdit控件中删除插入符号?我假设您指的是TEdit控件 解决方案是HideCaret函数,唯一的问题是在哪里调用它。下面的两个事件处理程序对我来说运行良好: procedure TForm18.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin HideCaret(Edi
:=False
,但插入符号仍然出现。
我的问题是如何从禁用的TEdit控件中删除插入符号?我假设您指的是
TEdit
控件
解决方案是HideCaret
函数,唯一的问题是在哪里调用它。下面的两个事件处理程序对我来说运行良好:
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;
将
TApplicationEvents
控件放置在表单上,并在OnIdle
事件中隐藏插入符号,如下所示。将事件设置为nil,使其仅触发一次
procedure TFormMain.AppEventsIdle(Sender: TObject; var Done: Boolean);
begin
AppEvents.OnIdle := nil;
HideCaret(Memo1.Handle);
end;
谢谢我找到了解决这个问题的另一个办法。我只是将ReadOnly设置为True。@Jordan这会做其他事情,但不会。@DavidHeffernan是的,但我想在单击文本框时删除该插入符号,使文本框只读而不带插入符号。@user246408谢谢,它也适用于D7。但在tEdit中没有“MouseEnter”,只有“MouseDown”。在更新的Delphi版本中有什么变化吗?