Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по TVirtualStringTree.   Найти похожие ветки 

 
AndrewK   (2003-12-19 12:46) [0]

Уважаемые мастаки, кто-нибудь работал с TVirtualStringTree?

Подскажите, пожалуйста, как в него добавлять свои значения. Насколько я понял, авторы рекомендуют использовать для инициализации реакцию на событие VSTInitNode. Только не пойму, как мне этим пользоваться. Например, есть файл с данными, который мне надо загрузить в VirtualStringTree. Открываю файл, получаю данные и все. Что с ними делать дальше не знаю. Пробовал VirtualStringTree.AddChild(nil, vData), где vData - указатель на данные, которые храняться в VirtualStringTree, получается что-то не то. К тому же авторы не рекомендуют использовать этот метод.

Как быть?


 
Reindeer Moss Eater   (2003-12-19 12:51) [1]

Что с ними делать дальше не знаю.
Не знаешь что делать со своими данными? Мы то здесь при чем?

Пробовал VirtualStringTree.AddChild(nil, vData), где vData - указатель на данные, которые храняться в VirtualStringTree, получается что-то не то.
Что именно не то?

К тому же авторы не рекомендуют использовать этот метод.
Вот так и пишут открытым текстом, не рекомендуем мол?


 
AndrewK   (2003-12-19 12:58) [2]

> Rindeer Moss Eater:
Не знаешь что делать со своими данными? Мы то здесь при чем?
Что делать со своими данными то знаю. Не знаю как их правильно засунуть в VirtualStringTree.

Что именно не то?
Данные в структуру попадают, но обращение к ним не проходит. Для теста в структуре просто хранил сторочку. При трассировке при вводе строка нормальная, а отображается совсем не то, что вводил.

Вот так и пишут открытым текстом, не рекомендуем мол?
Выдержка из хелпа:

Creates and adds a new child node to given node.
Declaration
function AddChild(Parent: PVirtualNode, UserData: Pointer = nil): PVirtualNode;
Description
The new node will be created as last child of Parent and is returned as result.
Notes
Using AddChild is not recommended. The method is merely there for easier migration from TTreeview. The reason is that the
method has to validate the node and does some other processing, which prevents the tree from utilizings its virtual

paradigm. Important advantages will so disappear. If possible you should restructure your design and try to use the right

way: via OnInitNode and OnInitChildren.


 
Reindeer Moss Eater   (2003-12-19 12:59) [3]

Все, что они не рекомендуют делать - так это самому распределять память под vData


 
Reindeer Moss Eater   (2003-12-19 13:01) [4]

Данные в структуру попадают, но обращение к ним не проходит. Для теста в структуре просто хранил сторочку. При трассировке при вводе строка нормальная, а отображается совсем не то, что вводил.

Чье обращение не происходит?
Где код обработчика события OnGetText?


 
AndrewK   (2003-12-19 13:45) [5]

Вот код.

...

PNodeData2 = ^TNodeData2;
TNodeData2 = record
Text1 : WideString;
end;

...

procedure TForm1.LoadTree;
var I : Integer;
vData : PNodeData2;
begin
New(vData);
for I := 0 to 9 do begin
with vData^ do begin
Text1 := Format("Text %d", [I+1]);
end;
VirtualStringTree.AddChild(nil, vData);
end;
end;

...

procedure TfrmConfigurator.VirtualStringTree.GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
Data: PNodeData2;
begin
Data := Sender.GetNodeData(Node);
CellText := "";
case Column of
0: begin
CellText := Data.Text1;
end;
1: begin
CellText := Data.Text1 + " <+>";
end;
end;
end;


 
Reindeer Moss Eater   (2003-12-19 14:17) [6]

procedure TForm1.LoadTree;
var I : Integer;
vData : PNodeData2;
begin
for I := 0 to 9 do
begin
vData := VirtualStringTree1.GetNodeData(VirtualStringTree1.AddChild(nil));
vData.Text1:=Format("Text %d", [I+1]);
end;
end;


 
AndrewK   (2003-12-19 16:29) [7]

:)
Все гениальное просто.
Огромное спасибо.



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

Форум: "Основная";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
14-12033
Dimka Maslov
2003-12-16 09:00
2004.01.05
SPY++


4-12220
Senator
2003-11-05 12:04
2004.01.05
путь


7-12178
Yanval
2003-10-24 16:17
2004.01.05
Частота обновления


3-11796
SergP
2003-12-09 11:44
2004.01.05
Синтаксис SQL. Проблема при использованиии групировки


3-11778
Gennadiy
2003-12-09 18:47
2004.01.05
Сохранение файла Word в BLOB поле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский