//做的改动
1.//function TStringEditLink.PrepareEdit(Tree: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex): Boolean;
//you can set the value diaplaying int the editor here
Text :=FTree.GetText(Node,Column);
FirstMatch :=Pos ('(',Text );
if FirstMatch <>0 then
LastMatch :=Pos (')',Text )
else
begin
FirstMatch :=Pos ('"',Text );
if FirstMatch <>0 then
LastMatch :=Pos (';',Text )-1;
end;
if LastMatch <>0 then
Text :=Copy (Text,FirstMatch ,LastMatch -firstmatch+1);
2.//procedure TStringEditLink.SetBounds(R: TRect);
//to change the left of bound
text:= FTree.GetText(FNode,0);
Offset :=Pos ('(',Text );
if Offset =0 then
Offset :=Pos ('"',Text );
R.Left :=R.Left +Offset*5;
R.Right :=R.Right -5;
3.//function TStringEditLink.BeginEdit: Boolean;
//to show hint while editing
FTree.Hint :=FTree.GetText(FNode,0);
FTree.ShowHint :=True ;
4.
procedure TScriptsForm.DataTreeCreateEditor(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
begin
EditLink:= TStringEditLink.Create ;
end;