在编辑状态下,对一个节点的Text进行修改,在结束编辑状态时,
用新输入的Text与树中所有节点的Text进行比较,如果有相同的就进行提示后
将该节点的Text恢复原状,并处于编辑状态。
我是在OnEdited事件中做的,但是Text看不到了
procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
  var S: String);
var
  i: integer;
begin
  for i:=0 to TreeView1.Items.Count-1 do
  begin
    if S=TreeView1.Items[i].Text then
    begin
      ShowMessage('该节点已存在!');
      Node.EditText;
    end
  end;
end;
我感觉这个事件是发生在取消编辑状态之前,所以不能实现我的要求
哪位老大帮忙呀

解决方案 »

  1.   

    在 ONMOUSEDOWN 下面去实现就可以了
      

  2.   

    //借一个Timer~~~
    procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
      var S: String);
    var
      I: Integer;
    begin
      for I := 0 to TTreeView(Sender).Items.Count - 1 do
        if (TTreeView(Sender).Items[I] <> Node) and
          (S = TTreeView(Sender).Items[I].Text) then begin
          ShowMessage('该节点已存在!');
          S := Node.Text;
          Timer1.Enabled := True;
          Exit;
        end
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      TreeView1.SetFocus;
      TreeView1.Selected.EditText;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      TTimer(Sender).Enabled := False;
      TreeView1.SetFocus;
      TreeView1.Selected.EditText;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Enabled := False;
      Timer1.Interval := 10;
    end;
      

  3.   

    zswangII(伴水清清)(一贴不灌,何以灌天下?) 的方法目前应该是最可行的了 :)