![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в TreeView очистить все ветки? [D5, Win95/98]
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)?