Delphi-Quellcode:
procedure TEditEditLink.EditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
ANode : PVirtualNode;
begin
case Key of
[...]
VK_RETURN:
begin
[...]
if FTree.CanEdit(FTree.FocusedNode, FTree.FocusedColumn) then
TVirtualStringTreeHack(FTree).DoEdit; // Warum machst du das hier????
end;
[...]
end;
end;
Warum machst du das im Code markierte mit einem Hack? Ruf doch einfach die Methode
FTree.EditNode(Node, Column)
auf und gut ist. Sollte genauso funktionieren, nur sauberer. Habe mir das Projekt jetzt nicht runtergeladen und getestet ob es wirklich funktioniert.
Zu der Sache mit der Tab Taste vermute ich, dass das Drücken von Tab das Control verlässt und du ggf. sogar im EditMode der aktuellen Node bleibst. Hier müsstest du (wahrscheinlich im KeyPress Event) die Tab Taste abfangen, sodass diese nicht vom System weiterverarbeitet wird.