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

Вниз

Очень надо ускорить работу TreeView   Найти похожие ветки 

 
MikeFW   (2002-06-18 16:33) [0]

Господа,
у меня сложилась следующая ситуация:
Я должен построить максимально удобное меню для работы с стаблицами базы данных (данные в которй можно интерпретировать как древовидную структуру) и использую для этих целей TreeView

использую для этих целей следующий код

while not qType.Eof do
begin
Node := tvPrice.Items.Add(nil, qType.FieldByName("INVTYPEID").Value);
qPrice.First;
while not qPrice.Eof do
begin
tvPrice.Items.AddChild(Node, qPrice.FieldByName("INVKINDID").Value);
qPrice.Next;
end;
qType.Next;
end;

И все хорошо строится, только вот незадача, в первой таблице 1,000 записей а в другой - 1,000,000 и вся операцияя по построению дерева занимает больше часа.

Подскажите, пожалуйста, как можно намного ускорить этот процес?


 
SergSuper   (2002-06-18 17:11) [1]

очевидно не строить всё дерево стразу, а заполнять нужные ветви при их раскрытии, используя соответсвующие эвенты


 
MikeFW   (2002-06-18 17:28) [2]

Подскажите, пожалуйста, как при клике на соответсвующую запись в дереве, передать фокус соответсвующей ей записи в базе данных?


 
aus ©   (2002-06-18 19:27) [3]

Я пробовал сначала все строки писать в екстовый файл, в формате, который сохраняет TreeView.SaveToFile(...), а потом загружать из файла, намного быстрее...


 
Volj   (2002-06-18 20:53) [4]

"передать фокус соответсвующей ей записи в базе данных" - в поле Data TTreeNode прописывать ID или ссылку на значение уникальной записи. Потом, соответственно, на OnChange смотришь Node.Data и Locate



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

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

Наверх




Память: 0.47 MB
Время: 0.02 c
1-47286
Tahion
2002-06-25 10:17
2002.07.15
Как можно отображать иконку в Image так, чтоб фон был прозрачным?


3-47097
id_privin
2002-06-20 19:55
2002.07.15
Загрузка данных в Oracle


3-47098
konung2002
2002-06-21 13:34
2002.07.15
Связывание двух главных и одной дочерней таблиц


1-47553
Stas Ant
2002-06-28 07:39
2002.07.15
Как сделать паузу в миллисекундах.


3-47201
stalexo
2002-06-18 21:19
2002.07.15
Порядковый номер записи