表结构是id,nodename,parentid
treeview控件,如何能删除被选的节点的相邻两层??

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if TreeView1.Selected =nil then Exit;
      if TreeView1.Selected.GetNext<>nil then //删除下层节点
      begin
    { ---------------------------------------------------------------------------- }
    { 删除表中数据                                                                 }
    {  With ADOQuery1 do                                                           }
    {   begin                                                                      }
    {   Close;                                                                     }
    {    SQL.Clear;                                                                }
    {    SQL.Add('删除语句');                                                      }
    {    ExecSQL;                                                                  }
    {  end;                                                                        }
    { ---------------------------------------------------------------------------- }
        TreeView1.Items.Delete(TreeView1.Selected.GetNext);
      end;
      if TreeView1.Selected.GetPrev<>nil then //删除上层节点
      begin
    { ---------------------------------------------------------------------------- }
    { 删除表中数据                                                                 }
    {  With ADOQuery1 do                                                           }
    {   begin                                                                      }
    {   Close;                                                                     }
    {    SQL.Clear;                                                                }
    {    SQL.Add('删除语句');                                                      }
    {    ExecSQL;                                                                  }
    {  end;                                                                        }
    { ---------------------------------------------------------------------------- }
        TreeView1.Items.Delete(TreeView1.Selected.GetPrev);
      end;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if TreeView1.Selected =nil then Exit;
      if TreeView1.Selected.GetNext<>nil then //删除下层节点
      begin
    { ----------------------------------------------------------------------- }
    { 删除表中数据                                                            }
    {  With ADOQuery1 do                                                      }
    {   begin                                                                 }
    {   Close;                                                                }
    {    SQL.Clear;                                                           }
    {    SQL.Add('删除语句');                                                 }
    {    ExecSQL;                                                             }
    {  end;                                                                   }
    { ----------------------------------------------------------------------- }
        TreeView1.Items.Delete(TreeView1.Selected.GetNext);
      end;
      if TreeView1.Selected.GetPrev<>nil then //删除上层节点
      begin
    { ----------------------------------------------------------------------- }
    { 删除表中数据                                                            }
    {  With ADOQuery1 do                                                      }
    {   begin                                                                 }
    {   Close;                                                                }
    {    SQL.Clear;                                                           }
    {    SQL.Add('删除语句');                                                 }
    {    ExecSQL;                                                             }
    {  end;                                                                   }
    { ----------------------------------------------------------------------- }
        TreeView1.Items.Delete(TreeView1.Selected.GetPrev);
      end;
    end;