按下MouseDown时如何设置Edit1.SelStart

问题描述 投票:0回答:1

我有一个编辑,当用户右键单击文本时,我需要设置 edit.selstart 位置。

edit.mousedown 似乎没有设置它,但 edit.click 却设置了。

因此,如果用户左键单击文本然后右键单击,则 selstart 是正确的,但如果他们没有左键单击,则首先 selstart 为 0。

在 edit.MouseDown 事件中有什么方法可以模拟 edit.click 吗?

delphi delphi-7
1个回答
0
投票

试试这个,对我有用:

uses
  ..., Windows;

procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Edit1.SelStart := LOWORD(Edit1.Perform(EM_CHARFROMPOS, 0, MAKELPARAM(X, Y)));
end;
© www.soinside.com 2019 - 2024. All rights reserved.