如何使用TEdits selStart和SelLength选择Text?

Rol*_*son 1 delphi delphi-2007

我尝试使一个新项目添加一个TEdit和一个TButton.将Edit1.Text设置为'This is a test message'.并在按钮上添加一个事件:

procedure TForm7.Button1Click(Sender: TObject);
begin
  Edit1.SelStart := 5;
  Edit1.SelLength := 5;
end;
Run Code Online (Sandbox Code Playgroud)

单击按钮时未选择任何内容.有人可以解释为什么以及如何选择文本的某些部分?

关心罗兰

TLa*_*ama 9

它按预期工作,但由于你的按钮通过点击它来窃取焦点,你然后再尝试将该编辑框重新聚焦.通过聚焦编辑框,默认情况下会选中所有文本.这是一个简单的证明,如果编辑框在选择时具有焦点,则选择文本:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.SetFocus;
  Edit1.SelStart := 5;
  Edit1.SelLength := 5;
end;
Run Code Online (Sandbox Code Playgroud)

  • 我个人建议使用一个不能接受焦点的按钮,即速度按钮或类似物. (3认同)