如何使用delphi中的TTreeview将数据绑定到中的编辑控件

如何使用delphi中的TTreeview将数据绑定到中的编辑控件,delphi,delphi-7,Delphi,Delphi 7,如何在Delphi中将数据从TTreeview控件绑定到Edit控件。。 当我点击提交按钮时。就像我可以编辑数据并更新它一样 procedure TForm1.Button1Click(Sender: TObject); var CurrentDeptID, RecordDeptID: Integer; RootNode, DeptNode: TTreeNode; begin CurrentDeptID := 0; TreeList1.Items.Clear; RootNod

如何在Delphi中将数据从TTreeview控件绑定到Edit控件。。 当我点击提交按钮时。就像我可以编辑数据并更新它一样

procedure TForm1.Button1Click(Sender: TObject);
var
  CurrentDeptID, RecordDeptID: Integer;
  RootNode, DeptNode: TTreeNode;
begin
  CurrentDeptID := 0;
  TreeList1.Items.Clear;
  RootNode := TreeList1.Items.Add(nil, 'Departments');
  DeptNode := nil;
  ADOQuery1.SQL.Text := 'SELECT sd.DeptID, sd.Name, d.Dept FROM SubDepartments sd INNER JOIN Departments d ON (sd.DeptID = d.DeptID) ORDER BY d.Dept, sd.Name';
  ADOQuery1.Open;
  try
    ADOQuery1.First;
    while not ADOQuery1.Eof do
    begin
      RecordDeptID := ADOQuery1.FieldByName('DeptID').AsInteger;
      if (DeptNode = nil) or (RecordDeptID <> CurrentDeptID) then
      begin
        DeptNode := TreeList1.Items.AddChild(RootNode, ADOQuery1.FieldByName('Dept').AsString);
        CurrentDeptID := RecordDeptID;
      end;
      TreeList1.Items.AddChild(DeptNode, ADOQuery1.FieldByName('Name').AsString);
      ADOQuery1.Next;
    end;
  finally
    ADOQuery1.Close;
  end;
procedure TForm1.按钮1点击(发送方:TObject);
变量
CurrentDeptID,RecordDeptID:整数;
RootNode,DeptNode:TTreeNode;
开始
CurrentDeptID:=0;
树列表1.Items.Clear;
RootNode:=TreeList1.Items.Add(nil,'Departments');
DeptNode:=nil;
ADOQuery1.SQL.Text:=“从子部门sd内部选择sd.DeptID、sd.Name、d.DeptID按d.DeptID、sd.Name在(sd.DeptID=d.DeptID)订单上加入部门d”;
ADOQuery1.打开;
尝试
A第一个问题;
而不是问1.Eof做什么
开始
RecordDeptID:=ADOQuery1.FieldByName('DeptID').AsInteger;
如果(DeptNode=nil)或(RecordDeptID CurrentDeptID),则
开始
DeptNode:=TreeList1.Items.AddChild(RootNode,ADOQuery1.FieldByName('Dept').AsString);
CurrentDeptID:=RecordDeptID;
结束;
TreeList1.Items.AddChild(DeptNode,ADOQuery1.FieldByName('Name').AssString);
ADOQuery1.下一步;
结束;
最后
ADOQuery1.关闭;
结束;

谢谢。

在Delphi 7中没有作为标准的DB Treeview,并且在任何情况下,您的查询都是不可编辑的。如果要在窗体上使用数据感知控件,则需要添加附加的数据集以将编辑控件绑定到。您可以将子部门的关键引用存储在
TTreeItem
的数据属性中

procedure TForm1.Button1Click(Sender: TObject);
var
  CurrentDeptID, RecordDeptID: Integer;
  RootNode, DeptNode, SubDeptNode : TTreeNode;
begin
  CurrentDeptID := 0;
  TreeList1.Items.Clear;
  RootNode := TreeList1.Items.Add(nil, 'Departments');
  DeptNode := nil;
  ADOQuery1.SQL.Text := 'SELECT sd.DeptID, sd.Name, d.Dept FROM SubDepartments sd INNER JOIN Departments d ON (sd.DeptID = d.DeptID) ORDER BY d.Dept, sd.Name';
  ADOQuery1.Open;
  try
    ADOQuery1.First;
    while not ADOQuery1.Eof do
    begin
      RecordDeptID := ADOQuery1.FieldByName('DeptID').AsInteger;
      if (DeptNode = nil) or (RecordDeptID <> CurrentDeptID) then
      begin
        DeptNode := TreeList1.Items.AddChild(RootNode, ADOQuery1.FieldByName('Dept').AsString);
        CurrentDeptID := RecordDeptID;
      end;
      SubDeptNode := TreeList1.Items.AddChild(DeptNode, ADOQuery1.FieldByName('Name').AsString);
      SubDeptNode.Data := ADOQuery1.FieldByName('DeptID').AsInteger;
      ADOQuery1.Next;
    end;
  finally
    ADOQuery1.Close;
  end;

什么样的数据?到目前为止你试着做什么?代码在哪里?现在我想显示编辑控件中的数据。。。
Procedure TForm1.TreeList1Click(Sender : TObject);
Var
  lNode : TTreeNode;
  lID : Integer;
Begin
  lNode := TTreeList.Selected;
  If Assigned(lNode) And (lNode.Level = 2) Then
  Begin
    lID := lNode.Data;
    // Pass this lID to your additional query.
  End;
End;