TTreeView:如何更改项目的内部编辑器的文本?

And*_*rew 2 delphi treeview editor treeviewitem delphi-xe

我有一个带可编辑项目的TreeView.当我按F2或选择后单击任何项​​目时,就会出现内部编辑器.

如何在显示之前更改该编辑器中显示的文本?例如,我的树项目的文本是Point 1 (300, 450),但我希望我的内部编辑器只显示Point 1.

我试图抓住这样的OnEditing事件:

procedure TForm1.TreeViewEditing(Sender: TObject; Node: TTreeNode; 
  var AllowEdit: Boolean);
begin
  AllowEdit := True;
  Node.Text := 'text to edit';
end;
Run Code Online (Sandbox Code Playgroud)

但是,就地编辑器的文本没有改变,树项目的文本仅在取消编辑后才更新.怎么做到这一点?

Ond*_*lle 7

如果以下适合您,请尝试:

uses
  Winapi.CommCtrl;

procedure TForm1.TreeView1Editing(Sender: TObject; Node: TTreeNode; var AllowEdit: Boolean);
var
  EditHandle: THandle;
  S: string;
begin
  AllowEdit := True;
  S := 'text to edit';
  EditHandle := TreeView_GetEditControl((Sender as TTreeView).Handle);
  SendMessage(EditHandle, WM_SETTEXT, 0, LParam(PChar(S)));
end;
Run Code Online (Sandbox Code Playgroud)