Raf*_*ari 3 delphi onclick textselection delphi-2010
如何在用户单击时选择TEdit1的所有文本或单击以选择其中的某些文本
Dav*_*nan 22
除了TEdit控件的默认行为之外,做任何事情都是非常危险的.您的用户知道标准Windows控件的行为方式,任何偏离都可能导致混淆.
默认情况下,该AutoSelect属性设置为True.
确定控件获得焦点时是否自动选择编辑控件中的所有文本.
设置AutoSelect以在编辑控件获得焦点时选择所有文本.AutoSelect仅适用于单行编辑控件.
当用户更有可能替换编辑控件中的文本而不是附加到文本时,请使用AutoSelect.
当此属性True为时,通过键盘操作获得焦点时,将选择编辑控件的全部内容.如果控件通过鼠标单击获得焦点,则不会全部选择内容.在这种情况下,您只需按CTRL+A选择全部.双击将选择鼠标下方的单词.这是底层Windows控件实现的所有标准行为.
如果OnClick根据当前选择的答案更改响应事件的选择,则会发现无法通过鼠标单击移动插入符号.这是非常违反直觉的行为.
这是一个典型的例子,说明为什么需要非常小心地将控件的行为从默认值更改.在测试时不要错过特定的用例非常容易,但是当用户掌握程序时,他们肯定会发现所有这些皱纹.
你可以安全地做的是打电话SelectAll给OnDblClick.我认为这没有恼人的副作用.
另一种选择是SelectAll在焦点切换到编辑控件时调用,但不是每次单击控件时调用.这对用户来说可能有些奇怪,但我个人认为采取这种行动是合理的.如果你想这样做,你需要处理OnEnter编辑控件的事件:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
PostMessage(Edit1.Handle, EM_SETSEL, 0, -1);
end;
Run Code Online (Sandbox Code Playgroud)
每当用户点击它时,如何选择TEdit1的所有文本
在VCL编辑器中选择Edit1,然后双击该OnClick事件:

procedure TForm13.Edit1Click(Sender: TObject);
begin
Edit1.SelectAll;
end;
Run Code Online (Sandbox Code Playgroud)
您还可以将此事件链接到另一个控件,如按钮.
选择按钮,选择并单击V箭头以选择要链接的事件.

现在,这两个Edit1.OnClick并Button1.OnClick链接到同一事件.