2011-10-05 94 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;