{"id":686,"date":"2008-05-21T06:23:02","date_gmt":"2008-05-21T06:23:02","guid":{"rendered":"http:\/\/6teen.ru\/?p=657"},"modified":"2008-05-21T06:23:02","modified_gmt":"2008-05-21T06:23:02","slug":"1845","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=686","title":{"rendered":"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 TreeView &#8212; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432"},"content":{"rendered":"<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 TreeView &#8212; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 TreeView - \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432\n\n\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: http:\/\/decoding.narod.ru\/practic\/treeview\/treeview.html\n\n\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c Delphi - TreeView. TreeView \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u0432\u0435\u0442\u0432\u044f\u0449\u0438\u0445\u0441\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 - \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0438\u0441\u043a\u0430. TreeView \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u0437\u043b\u044b, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0438\u043a\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u0442\u0435\u043a\u0441\u0442 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0438 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u0443\u0437\u043b\u043e\u0432.\n\n\u0414\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e Item \u0442\u0438\u043f\u0430 TTreeNodes, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u0443\u0437\u043b\u0430\u043c \u0441\u043f\u0438\u0441\u043a\u0430. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.\n\nprocedure TForm1.FormCreate(Sender: TObject);\nvar\ni: integer;\nbegin\nwith TreeView1 do\nbegin\n\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b\nItems.Add( nil, ?\u041a\u043e\u0440\u0435\u043d\u044c? );\n\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c 10 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432\nfor i := 1 to 10 do\nItems.AddChild( Items[i-1], IntToStr( i ) );\nend;\n\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:\n\u00b0 TreeView1.Items.BeginUpdate - \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0430 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043c\u0435\u0442\u043e\u0434 EndUpdate. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043c\u0435\u0440\u0446\u0430\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u0430.\n\u00b0 TreeView1.Items.EndUpdate - \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 BeginUpdate.\n\u00b0 TreeView1.FullExpand - \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0443\u0437\u043b\u044b \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438.\n\u00b0 TreeView1.FullCollapse - \u043f\u0440\u044f\u0447\u0435\u0442 \u0432\u0441\u0435 \u0443\u0437\u043b\u044b, \u043a\u0440\u043e\u043c\u0435 \u0443\u0437\u043b\u043e\u0432 \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438.\n\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0434\u0435\u0440\u0435\u0432\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432. \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0432 TreeView \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0434\u0438\u0441\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a\u0430\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0434\u0435 \u0437\u0430\u0439\u043c\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0431\u0443\u0434\u0435\u043c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u044f \u0443\u0437\u043b\u0430. \u0412 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0432 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u0445 \u043c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0445\u043e\u0442\u044c \u043e\u0434\u043d\u0443 \u043f\u0430\u043f\u043a\u0443. \u041e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442, \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0443\u0437\u043b\u0435 \u0437\u043d\u0430\u043a \"+\", \u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u0439 \u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0438\u043b\u0438 \u043d\u0435\u0442. \u0418\u043a\u043e\u043d\u043a\u0438 \u0434\u043b\u044f TreeView \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 FileCtrl.res, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u043c\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \"Delphi6lib\".\n\nimplementation\n\n{$R *.dfm}\n{$R FileCtrl}\n\nprocedure TForm1.FormCreate(Sender: TObject);\nconst\nIconNames: array [0..6] of string = ( ?CLOSEDFOLDER?,\n?OPENFOLDER?,\n?FLOPPY?,\n?HARD?,\n?NETWORK?,\n?CDROM?,\n?RAM? );\nvar\nnode: TTreeNode;\nDriveType: integer;\nbm, mask: TBitmap;\ni: integer;\nbegin\n\/\/ \u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 TreeView\nTreeView1.Items.BeginUpdate;\n\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043a\u043e\u043d\u043e\u043a\nTreeView1.Images := TImageList.CreateSize( 16, 16 );\nbm := TBitmap.Create;\nmask := TBitmap.Create;\nfor i := 0 to 6 do\nbegin\nbm.Handle := LoadBitmap( HInstance, PChar( IconNames ) );\nbm.Width := 16;\nbm.Height := 16;\nmask.Assign( bm );\nmask.Mask( clBlue );\nTreeView1.Images.Add( bm, mask );\nend;\nbm.Free;\nmask.Free;\n\/\/ \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0434\u0438\u0441\u043a\u0438 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0438\u0445 \u0432 TreeView\nfor i := 0 to 25 do\nbegin\nDriveType := GetDriveType( PChar( Chr( i + 65 ) + ?:? ) );\nif DriveType = 1 then continue;\nnode := Form1.TreeView1.Items.AddChild( nil, Chr( i+65 ) + ?:? );\ncase DriveType of\nDRIVE_REMOVABLE: node.ImageIndex := 2;\nDRIVE_FIXED: node.ImageIndex := 3;\nDRIVE_REMOTE: node.ImageIndex := 4;\nDRIVE_CDROM: node.ImageIndex := 5;\nelse\nnode.ImageIndex := 6;\nend;\nnode.SelectedIndex := node.ImageIndex;\nnode.HasChildren := true;\nend;\n\/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c TreeView\nTreeView1.Items.EndUpdate;\nend;\n\n\u041f\u0440\u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u0438 \u0443\u0437\u043b\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 onExpanding, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0441\u0440\u0430\u0437\u0443. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0438 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043d\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u0438 \u0443\u0437\u043b\u0430.\n\nprocedure NextLevel(ParentNode: TTreeNode);\nvar\nsr, srChild: TSearchRec;\nnode: TTreeNode;\npath: string;\nbegin\nnode := ParentNode;\npath := ??;\nrepeat\npath := node.Text + ?? + path;\nnode := node.Parent;\nuntil node = nil;\n\/\/ \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u0443\u0431 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e\nif FindFirst( path + ?*.*?, faDirectory, sr ) = 0 then\nbegin\nrepeat\nif ( sr.Name <> ?.? ) and ( sr.Name <> ?..? ) then\nif ( sr.Attr and faDirectory ) = faDirectory then\nbegin\n\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0432 TreeView\nnode := Form1.TreeView1.Items.AddChild( ParentNode, sr.Name );\nnode.ImageIndex := 0;\nnode.SelectedIndex := 1;\n\/\/ \u0423\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u043d\u0435\u0442 \u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432\nnode.HasChildren := false;\n\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0442\u0430\u043a \u043b\u0438 \u044d\u0442\u043e\nif FindFirst( path + sr.Name + ?*.*?, faDirectory, srChild ) = 0 then\nbegin\nrepeat\nif ( srChild.Name <> ?.? ) and ( srChild.Name <> ?..? ) then\nif ( srChild.Attr and faDirectory ) = faDirectory then\nnode.HasChildren := true;\nuntil ( FindNext( srChild ) <> 0 ) or node.HasChildren;\nend;\nFindClose( srChild );\nend;\nuntil FindNext( sr ) <> 0;\nend\nelse\nParentNode.HasChildren := false;\nFindClose( sr );\nend;\n\nprocedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;\nvar AllowExpansion: Boolean);\nbegin\nTreeView1.Items.BeginUpdate;\nnode.DeleteChildren;\nNextLevel( node );\nTreeView1.Items.EndUpdate;\nend;\n\n\u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0435\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u043e, \u0442\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u043e\u0434\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u0435\u0440\u0435\u0432\u043e.\n\nprocedure TForm1.Button1Click(Sender: TObject);\nbegin\nwith TreeView1 do\nbegin\nItems.BeginUpdate;\nFullExpand;\nItems.EndUpdate;\nend;\n\n\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e \u0432\u043d\u043e\u0432\u044c \u0442\u043e\u0436\u0435 \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.\n\nprocedure TForm1.Button2Click(Sender: TObject);\nbegin\nwith TreeView1 do\nbegin\nItems.BeginUpdate;\nFullCollapse;\nItems.EndUpdate;\nend;\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 TreeView &#8212; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[430,386],"tags":[1924,1289,789,322],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/686"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=686"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/686\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}