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 - делает, но как удалить все корни, я про них не знаю...


neXt2   (2003-02-06 14:27:00) [61]

Вот построение ветки:
procedure TfMain.ExpendLevel(Node:TTreeNode);
var ID:integer;
ChildNode:TTreeNode;
begin

if Node = nil then ID := 0
else
ID := Integer(Node.Data);

with dm.qName do
begin
Close;
ParamByName("PARENT_ID").AsInteger := ID;
Open;
First;
with tree.Items do
begin
BeginUpdate;
while not Eof do
begin
ChildNode:=AddChildObject(Node , FieldByName("name").AsString,
Pointer(FieldByName("id").AsInteger));

if FieldByName("child_cnt").AsInteger>0 then
begin
ChildNode.ImageIndex := 1;
ChildNode.SelectedIndex := 0;
AddChild(ChildNode,"");
end
else
begin
ChildNode.ImageIndex := 2;
ChildNode.SelectedIndex := 2;
end;
Next;
end; //while
EndUpdate;
end;
end;
end;


FLIZ   (2003-02-06 14:02:00) [62]

в натуре, давай сюда нам код а так клоунада какая-то.
насколько я работал с деревьями ТриВью - ничего там плохого
не происходит при работе с узлами, ну т.е. при ИтемсКлеар
и прочем никаких баг Дерева нету. это у тебя в коде
что-то не так и ошибка тобою создана. и компонент ТриВью
тут точно не причем. код в студию!


Digitman   (2003-02-06 13:43:00) [63]


> и то существует, и то.


глядя на приведенный тобой код, показанный дебагером, уверяю тебя - проблема с несуществованием одного из объектов БД !


> а то дерево строится, перестраивается


Давай еще в "угадайку с 3-х раз" поиграем, с недельку так примерно, чего у тебя там "строится, перестраивается"..

я буду угадывать твой код - мне это ооооочень нужно ! - а ты будешь радостно так говорить всякий раз "не-а, снова не угадал !"

))


gsu   (2003-02-06 13:39:00) [64]

>> Digitman © (06.02.03 13:09)
какой же вы терпеливый (-:|~


neXt2   (2003-02-06 13:38:00) [65]

и то существует, и то.
Ошибка при не существовании была бы сразу при построении дерева, а то дерево строится, перестраивается,а при закрытии формы - глюк.


Digitman   (2003-02-06 13:35:00) [66]

значит, не существует либо полt "id" либо объект IBDataSet


neXt2   (2003-02-06 13:34:00) [67]


> Digitman © (06.02.03 13:32)
> FieldByName("id").AsInteger какого объекта ???

IBDataset


neXt2   (2003-02-06 13:32:00) [68]


> Digitman © (06.02.03 13:30)
> чего проверяешь-то ? Это что, твой СОБСТВЕННЫЙ код ??
> TFields.FindField ???

галочка View CPU Window.
TFields.FindField - это чуть выше...


Digitman   (2003-02-06 13:32:00) [69]

FieldByName("id").AsInteger какого объекта ???


jack128   (2003-02-06 13:31:00) [70]

2 neXt2
как предположение: ты результат FindField на nil проверяешь?


neXt2   (2003-02-06 13:30:00) [71]

Когда я создаю детеныша с датой, то вот в дату я пишу -
Pointer(FieldByName("id").AsInteger)


Digitman   (2003-02-06 13:30:00) [72]

чего проверяешь-то ? Это что, твой СОБСТВЕННЫЙ код ??
TFields.FindField ???


neXt2   (2003-02-06 13:27:00) [73]

БД IBDatabase->IBTrasaction->IBDataset.
Вот я проверяю все время в этой штуке:
TFields.FindField ...mov eax,[ebp+$04]


Digitman   (2003-02-06 13:23:00) [74]

вот видишь !
Items.Clear здесь совершенно ни при чем)

какая-то лажа у тебя при работе с объектами БД


neXt2   (2003-02-06 13:23:00) [75]

А что именно?


gsu   (2003-02-06 13:22:00) [76]

>> neXt2 (06.02.03 13:19)
>> Skier © (06.02.03 13:20)
Только не все 250 модулей (-:|~


Skier   (2003-02-06 13:20:00) [77]

>neXt2
Код в студию !


neXt2   (2003-02-06 13:19:00) [78]

TFields.FindField ...mov eax,[ebp+$04]
И что? Что с этим делать? Получается ошибка с БД. Ну и какого ...? БД я юзаю, дерево на основе БД.


gsu   (2003-02-06 13:15:00) [79]

критический код на базу ...


Digitman   (2003-02-06 13:14:00) [80]

вот и проси дебагер, чтобы он показал тебе строчку, на который ты получаешь AV !

см. Search | Find Error ...

там и вводи это самый 004869DE


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

Наверх

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