Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Кто пользовался Virtual Treeview?   Найти похожие ветки 

 
lipskiy ©   (2003-10-23 20:38) [0]

Есть такой компонент, слышал что хороший, быстрый, но не могу понять как им пользоваться.
Лежит здесь:
http://www.delphi-gems.com/VirtualTreeview/VT.php
Для начала - как его правильно инсталлировать? А то каждый раз мучаюсь - все время что-то не так.
И потом - так и не пойму принципа организации ветвей, как например обратиться к конкретной ноде?
Может есть какие-то русские справки по этому компоненту?


 
jack128 ©   (2003-10-23 20:48) [1]


> Для начала - как его правильно инсталлировать?

скачало открываешь и компилируешь VirtualTreesD5.dpk
потом открываешь, компелируешь и инсталирушь VirtualTreesD5D.dpk

Только у тебя должет быть TThemeMenager стоять (XPThemeMenager или что то типа этого библиотека называется - качать с тех же http://www.delphi-gems.com )


> пойму принципа организации ветвей, как например обратиться к конкретной ноде?

методы GetFirstXXX/GetNextXXX


 
me   (2003-10-23 21:00) [2]

Там достаточно простые демки - все можно понять, изучая их сорсы. И сделать это надо обязательно. Вообще - изучение чужих сорсов должно быть одним из любимейших занятий профессионального программера!


 
lipskiy ©   (2003-10-23 21:26) [3]

Угу, про инсталляцию понял, поставил сейчас новую версию под D7, менеджер тем вроде не потребовался, по крайней мере демки компилятся.

Я честно все сорсы изучал, но не могу понять вот такой простой вещи, напрмер, как добавить потомка и потом с ним работать:

type
PNodeData = ^TNodeData;
TNodeData = record
Caption : WideString;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TreeInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
Data: PNodeData;
begin
Data:= Sender.GetNodeData(Node);
with Data^ do
begin
if Sender.GetNodeLevel(Node) = 0 then
begin
case Node.Index of
0: Caption:= "Первая";
1: Caption:= "Вторая";
2: Caption:= "Третья";
end;
end;
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Tree.NodeDataSize := SizeOf(TNodeData);

end;

procedure TForm1.TreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
Data: PNodeData;
begin
Data:= Sender.GetNodeData(Node);
if Assigned(Data) then CellText := Data.Caption;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//как добавить потомка к одной конкретной из корневых нод???
//и как потом обращаться к данным этой конкретной ноды?
end;

end.


 
lipskiy ©   (2003-10-23 21:28) [4]

Во всех демках идет обращение к ноде через SelectedNode, а мне-то надо обратиться к конкретной ноде, которая не выделена, добавить к ней потомков, прочесть ее данные. Как найти необходимую ноду? Неужели поиском шерстить все дерево?


 
jack128 ©   (2003-10-24 09:40) [5]

with VST
ChildrenCount[GetFirst()] := 10;

при инициализации

procedure TForm1.TreeInitNode(Sender: TBaseVirtualTree; ParentNode,
Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
Data: PNodeData;
begin
Data:= Sender.GetNodeData(Node);
with Data^ do
begin
case Sender.GetNodeLevel(Node) of
0 :
begin
case Node.Index of
0: Caption:= "Первая";
1: Caption:= "Вторая";
2: Caption:= "Третья";
end;
1 : if ParenNode.Index = 0 then
Caption := Format("Это дочерний узел №%d первого узла дерева",[Node.Index]);
end;
end;
end;
end;


 
lipskiy ©   (2003-10-27 18:42) [6]

спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
1-41680
Jimboo
2003-10-23 15:15
2003.11.13
Помогите с реализацией


8-41735
Beat
2003-07-14 13:43
2003.11.13
Масштабирование изображений при просмотре (a-la ACDSee)...


9-40759
G a m e r
2003-05-05 19:02
2003.11.13
Исходники Warcraft 2000! :)


1-41521
maestro
2003-10-28 07:55
2003.11.13
уничтожение компонента Button


1-41533
Эдуард
2003-10-28 10:09
2003.11.13
PageControl без вкладок