Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Delphi TEdit中隐藏插入符号?_Delphi_Textbox_Caret - Fatal编程技术网

如何在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

我想从Delphi中的TEdit控件中删除插入符号。我已启用组件
:=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版本中有什么变化吗?