Question

I would like to edit a cell (node) from the VirtualStringTree directly after I click on the cell (something like a StringGrid with the options goEditing:True and goAlwaysShowEditor:True)

I've setup the option of toEditable:True, toEditOnClick:True and editDelay:0 but VirtualStringTree component it goes to edit mode after the second click (first is focusing the cell and secondly is editing)

Was it helpful?

Solution

I don't think there's a way to configure what you want, however you can use e.g. the OnFocusChanged event and invoke the edit mode manually with a code like this:

procedure TForm1.VirtualStringTree1FocusChanged(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex);
begin
  Sender.EditNode(Node, Column);
end;

The problem of the above workaround is that the edit mode is invoked even if you select different node by keyboard, which may not be exactly what you want.

OTHER TIPS

Get the event OnEditing and set the Allowed flag to true.

Procedure TForm1.vtListEditing(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; var Allowed: Boolean);
begin
  Allowed := true;
end;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top