I have a table1 with a field 'treenode'.Please teach me How to read all items (record) to
"Addchild" to treewiew, start from Treeview1.items[0].
Using ADOTable1
any dataTable using same Fuction
some source for if u need:
ID FolderID and ParentID is Table's field, save node data
and must create index for it.
FolderTable is my database table.
procedure TBook.FillFolderTreeView;
// using recursion to fill Treeview
// u need this child method
procedure FillTreeNode(TreeNode: TTreeNode);
var
I, FolderID: Integer;
Node: TTreeNode;
begin
FolderID := Integer(TreeNode.Data);
for I := 0 to TreeNode.Count - 1 do
begin
FillTreeNode(TreeNode.Item[I]);
end;
end;
begin
//initialize TreeView
TreeView.Items.BeginUpdate ;
TreeView.Items.Clear ;
//Fill Node and Expand all nod
FillTreeNode(TreeView.Items[0]);
TreeView.FullExpand;
TreeView.Items.EndUpdate ;
TreeView.Items[1].Selected := True;
end;
Comment from leeon Date: 05/05/2003 10:54AM PDT
this is a new folder's method.
u maybe know how to do it.
read this source and i post source later,
Inputform is writing strings form.
don't care that.
procedure TBook.NewFolderExecute(Sender: TObject);
var
ParentID: Integer;
FolderName: String;
TreeNode: TTreeNode;
begin
if TreeView.Selected = nil then Exit;
ParentID := Integer(TreeView.Selected.Data);
if ShowInputForm(FolderName, SNewFolder, SFolderName) then
begin
FolderTable.Filtered := False;
FolderTable.Append;
FolderTable.FieldByName('ParentID').AsInteger := ParentID;
FolderTable.FieldByName('Name').AsString := FolderName;
FolderTable.Post ;
TreeNode := TreeView.Items.AddChild(TreeView.Selected, FolderName);
TreeNode.Data := Pointer(FolderTable.FieldByName('ID').AsInteger);
TreeNode.SelectedIndex := 1;
TreeNode.MakeVisible ;
TreeNode.Selected := True;
end;
end;
Comment from z27 Date: 05/05/2003 05:27PM PDT
Thank you very much!
Comment from leeon Date: 05/05/2003 07:26PM PDT
:) u r welcome.
here is delete folder method
you'd better read this careful
//cardtable is File table, FolderTable save it's data
procedure TBook.DeleteFolderExecute(Sender: TObject);
var
TreeNode: TTreeNode;
FolderID, R: Integer;
begin
if TreeView.Selected = nil then Exit;
TreeNode := TreeView.Selected ;
if TreeNode.AbsoluteIndex in [0,1] then Exit;
R := MessageBox(
Application.Handle,
PChar(SQueryDeleteFolder),
PChar('Are you sure to delete the folder?'),
36);
if R = ID_NO then Exit;