2011-10-05 52 views

回答

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; 
+2

谢谢。我发现了另一个解决这个问题的方法。我只是将ReadOnly设置为True。 –

+2

@Jordan尽管没有,但还是做了其他的事情。 –

+0

@DavidHeffernan是的,但我想删除插入符号只为使文本框只读而不脱字,当我点击它。 –

0

放置一个TApplicationEvents控制的形式,并在OnIdle事件,隐藏插入符,如下所示。将事件设置为零,因此它只触发一次。

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