![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeViev
well © (2002-01-23 17:04:00)Программисты!
Если не трудно, приведите пример использования свойства "Data" в TTreeNode, пожалуйста!
Rem (2002-01-23 18:02:00) [1]Data - это указатель на любые данные, привязанные к ветке или листу. В приведенном ниже примере при создании формы в TreeView1 создается список всех компонентов, размещенных на форме, с учетом иерархии. При двойном щелчке на элементе дерева связанный с ним элемент меняет свою видимость. Чтобы понять в чем дело, рекомендую разместить на форме несколько панелей с размещенными на них кнопками, другими панелями и т.д.
...
TForm1 = class(TForm)
...
private
procedure BuildTree(ParentNode: TTreeNode; Control: TWinControl);
...
end;
...
procedure TForm1.BuildTree(ParentNode: TTreeNode; Control: TWinControl);
var
i: integer;
Node: TTreeNode;
begin
for i := 0 to Control.ControlCount - 1 do
begin
Node := TreeView1.Items.AddChild(ParentNode, Control.Controls[i].Name);
Node.Data := Control.Controls[i];
if (Control.Controls[i] is TWinControl) then BuildTree(Node, TWinControl(Control.Controls[i]));
end;
end;
procedure TForm1.TreeView1DblClick(Sender: TObject);
begin
TControl(TreeView1.Selected.Data).Visible := not TControl(TreeView1.Selected.Data).Visible;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
BuildTree(nil, Self);
end;
yaJohn (2002-01-23 17:12:00) [2]Node.Data:=Node;
Node.Data:=nil;
Node.Data:=self;
Node.Data:=pointer(pochti vse chto ugodno);
:)))))))))