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

Вниз

Удаление ветки с дочерними элементами TTreeView   Найти похожие ветки 

 
TechnoDreamer ©   (2004-11-22 02:22) [0]

Надо функция удаляющая TTreeNode со всеми дочерними элементами. Причем она должна быть не рекурсивной и удалять каждый элемент по одному (потому что вместе с элементом надо удалять и связанные с ним данные). Поможет кто-нибуть с этим?


 
jack128 ©   (2004-11-22 02:30) [1]

TechnoDreamer ©   (22.11.04 2:22)
Причем она должна быть не рекурсивной

Чем вызвано это ограничение ? В принципе рекурсию можно развернуть, но в плане кодирования это на порядок сложнее.


 
TechnoDreamer ©   (2004-11-22 02:36) [2]

Знаю, что сложнее, потому и спрашиваю, рекурсивная есть. Работает с ошибками (идет работа с базой данных через ADO) и медленно. Т.е. на небольших ветках всё нормально, а с большими пробела, и именно с базой, при чём ошибка именно ADO.


 
jack128 ©   (2004-11-22 03:52) [3]

Вообще лудше почитать теорию на этот счет, а вот вот что надумал.
Алгоритм беру из головы, ни разу на практике не применял, но идею, думаю, подскажет..

label lb1, lb2;
begin
//Заводишь стек для всех переменных, используемых в процедуре.

lb1:
 //выполняешь код, до рекурсивного вызова.

 // вместо рекурсивного вызова делаешь:
 //      кладешь все переменные в стек
 //      и подменяешь входные параметры на новые
 //      goto lb1;
lb2:
 //...

 //вместо завершения процедуры
 if not стек_переменных_пустой then
 begin
   //извлекаешь переменные из стека
   goto lb2;
 end;
end;

Но лудше по подробнее задачу опиши.. Может удастся оптимизировать так, что и рекурсия прокатит.

зы: а с чего ты вообще решил, что проблема именно в рекурсии???



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

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

Наверх




Память: 0.47 MB
Время: 0.049 c
1-1100680533
Fishka
2004-11-17 11:35
2004.12.05
MainMenu - надо огромными жирными буквами и по ширине побольше


4-1098450973
Lin7
2004-10-22 17:16
2004.12.05
Как узнать размер иконки на рабочем столе?


1-1100762824
denis24
2004-11-18 10:27
2004.12.05
проверка Tbitmap помещаемого в image


1-1100723377
Intr
2004-11-17 23:29
2004.12.05
присвоить ImageIndex к пункту меню во время выполнения программы.


3-1099651871
trafff
2004-11-05 13:51
2004.12.05
Здравствуйте! Подскажите плз, как воспользоваться сортировкой в