Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в TreeView очистить все ветки? [D5, Win95/98]


Страницы:   1 2 3 4 5

neXt2 ©   (2003-02-06 10:01:00) 

Мастера, помогите, наверное вопрос уже всех задолбал, но не сердитесь...
Т.е. не Items.Clear, а Node.Delete? Я очень часто перестраиваю дерево Items.Clear не очищяет память, а Node.Delete - делает, но как удалить все корни, я про них не знаю...


Соловьев   (2003-02-06 17:59:00) [1]

Я переставил местами - работает! Блин, сколько, времени у тебя отнял, извини... Спасибо, что помогал. Буду дальше колбасить :)
Может я тоже выросту до таких как ты...


Digitman   (2003-02-06 17:56:00) [2]

О-хо-хооо) ..

Начали за здравие, кончили за упокой)


Давай точный код из DPR


Соловьев   (2003-02-06 17:54:00) [3]


> и - кто владелец компонента DM ?

Не понял что ты имеешь в виду?


Digitman   (2003-02-06 17:50:00) [4]

ну а почему же не поменять местами ?

и - кто владелец компонента DM ?


Соловьев   (2003-02-06 17:43:00) [5]

В *.dpr:
MainForm.Create;
DM.Create;


Digitman   (2003-02-06 17:38:00) [6]


> как сделать чтобы DataModule разрушалось последней


смотря как ты создаешь этот DataModule
от этого зависит и контроль за порядком (либо принудительное осуществление) его разрушения


Соловьев   (2003-02-06 17:22:00) [7]

:)
>
> Digitman © (06.02.03 17:15)
> Упс ! Уже реинкарнация приключилась) <neXt2> to <Соловьев>)


Digitman   (2003-02-06 17:15:00) [8]

Упс ! Уже реинкарнация приключилась) <neXt2> to <Соловьев>)


> Ты про try..except..end? Сделаю.


Я ему про фому, он - про ерему)

try .. finally/except - это безусловно, но упомянул я это по другому поводу ... ты хоть прочитай, о чем я там)

щелчек на узле у тебя зачем отрабатывается ? чтобы детей узла обновить визуально ? а если самого узла (в таблице !) уже нет - о каких его детях речь может идти ?


> node.Data ссылается на данные в DataModule


Это каким же образом ? ты ж в Data что пишешь ? просто - число некое, не более того ... число это - просто некое значение некоего перв.ключа некоей записи


Соловьев   (2003-02-06 17:03:00) [9]


> теперь первый юзер сподобился щелкнуть на уже удаленном
> в этот момент узле..

Ты про try..except..end? Сделаю.

>
> Digitman © (06.02.03 16:55)
>
> > Убрал DataModule вроде работает...
>
>
> я ж тебе сразу сказал - смотри за порядком событий, связанных
> с разрушением форм/модулей данных при завершении

Я так понимаю, node.Data ссылается на данные в DataModule. Она разрушается первой. А как сделать чтобы DataModule разрушалось последней? Наверное я написал бред...


gsu   (2003-02-06 16:55:00) [10]

наконец то, ...
Digitman © - самый терпеливый мастер, гип-гип, ура (-:|~


Digitman   (2003-02-06 16:55:00) [11]


> Убрал DataModule вроде работает...


я ж тебе сразу сказал - смотри за порядком событий, связанных с разрушением форм/модулей данных при завершении приложения !


> Нет, не для одного


вот и представь себе - два юзера юзают одновременно твое дерево ..
один добавил узел, другой, обновив свое, увидел этот узел и удалил его, а заодно и родит.узел

теперь первый юзер сподобился щелкнуть на уже удаленном в этот момент узле..


neXt2   (2003-02-06 16:54:00) [12]

Да! работает!!!


neXt2   (2003-02-06 16:46:00) [13]

Убрал DataModule вроде работает...


neXt2   (2003-02-06 16:40:00) [14]

Нет, не для одного, просто в этой *.gdb не только эти данные(они как вспомагательные идут), а вообще это БД для Отдела труда и з/п
Там и штатное, и кадры, и норма по операциям(эта задача).


Digitman   (2003-02-06 16:33:00) [15]

это чего такое получается ? ты пользуешь IB SS для одного-единственнгого клиента ? не жирно будет ?


neXt2   (2003-02-06 16:25:00) [16]

Ее можно удалить только из этого дерева, т.е. конечно может програмер залезть и в *.gdb поправить, но не юзер. И еще у меня тригеры стоят, сами считают сколько детей.


Digitman   (2003-02-06 16:17:00) [17]

а если эта запись удалена уже ?


neXt2   (2003-02-06 15:50:00) [18]

2 Digitman ©
У меня есть поле child_cnt, если =0 конец, >0 - нет
В neXt2 (06.02.03 14:27) есть присутсвие это елемента.


Digitman   (2003-02-06 15:46:00) [19]


> Oleon


Нет здесь никакой утечки памяти. Не выдумывай.

> neXt2 (06.02.03 15:40)
> У меня при ввыборе узла, должен открыватся НД тогда, когда
> это конец ветки(т.е. тот кто не имеет детей).


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


neXt2   (2003-02-06 15:40:00) [20]

У меня при ввыборе узла, должен открыватся НД тогда, когда это конец ветки(т.е. тот кто не имеет детей).

Так что мне делать?

Что мне при onDestroy DataModule закрывать IBDataset и чистить дерево(Node.Data := nil)?


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо