Standardmäßig ist das hier leider nicht vorgesehen. Kann man aber leicht simulieren.
Z.B. wenn Du ein TreeviewItem selektiert hast und F2 drückst, dann zeigst Du halt ein TEdit an der Position des Items an, kopierst den Text des TV-Items in das Edit und übernimmst den TEdit-Text nach Enter wieder in das Item und machst das Edit wieder unsichtbar.
Hier mal ein schnell dahingeschriebenes Demo, wenn ein Treeview auf einer Form liegt und ein unsichtbares TEdit (das gewinnt jetzt keinen Schönheitswettbewerb, soll aber auch nur ein kleiner Input für die generelle Vorgehensweise sein):
Delphi-Quellcode:
procedure TForm12.Edit1Exit(Sender: TObject);
begin
TEdit(Sender).Visible := false;
end;
procedure TForm12.Edit1KeyUp(Sender: TObject;
var Key: Word;
var KeyChar: Char;
Shift: TShiftState);
begin
if Key = vkReturn
then begin
if Treeview1.Selected <>
NIL then begin
Treeview1.Selected.Text := Edit1.Text;
end;
edit1.Visible := false;
Treeview1.SetFocus;
end;
if Key = vkEscape
then begin
edit1.Visible := false;
end;
end;
procedure TForm12.TreeView1KeyUp(Sender: TObject;
var Key: Word;
var KeyChar: Char; Shift: TShiftState);
var
tv : TTreeviewItem;
tp: TPointF;
begin
if Key = vkF2
then begin
if Treeview1.Selected <>
NIL then begin
tv := Treeview1.Selected;
tp := tv.LocalToAbsolute (PointF (tv.Position.X, tv.Position.y));
if tv.level = 1
then begin
edit1.position.x :=
tp.x + 16;
end else begin
edit1.position.x :=
tp.x;
end;
edit1.Position.Y :=
tp.Y - tv.position.y;
edit1.Width := Treeview1.Position.X + Treeview1.Width - edit1.Position.x - 2;
edit1.Text := tv.Text;
edit1.Visible := True;
edit1.BringToFront;
edit1.SetFocus;
edit1.SelectAll;
end;
end;
end;
Siehe anliegenden Screenshot.