![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView [D7, WinXP]
slim © (2004-10-29 20:15:00)здравствуйте.
может кто нибудь знает :
я добавляю родительский обект:
var
MyTreeNode1:TTreeNode;
with TreeView1 do
begin
MyTreeNode1:=Items.AddObject(nil,PLI^.name+' '+PLI^.time,PLI);
end;
потом дочерний :
with TreeView1.Items do
begin
TreeView1.Font.Color:=clBlack;
AddChildObject(nil,PLI^.name+' '+PLI^.time,PLI);
MyTreeNode1.Expand(true);
end;
<\code>
получается примерно так:
name1 00:00:00
file1 00:00:30
file2 00:00:10
а хочется что бы так:
name1 00:00:40
file1 00:00:30
file2 00:00:10
т.е. при добавлении дочернего обекта изменялся и родительский
как это сделать?
slim (2004-10-30 12:18:00) [1]нашел!!!
так лучше и как надо:
MyTreeNode1.Data:=PLI;
MyTreeNode1.Text:=PLI^.name+' '+PLI^.time;
Гаврила (2004-10-29 21:44:00) [2]
> [10] slim
Если хочешь сделать все грамотно, рекомендую сделать так:
определить потомка от TTreeNode, добавить в него те поля, которые есть в твоем record ' е
сам record выкинуть
при добавлении узлов в дерево добавлять именно экземпляры класса твоего потомка
доступ к тем полям потомка, которые влияют за текст, сделать через свойства, в методах Set которых корректировать свой собственный заголовок.
При формировании заголовка учитывать также список дочек, если надо
slim (2004-10-29 21:37:00) [3]
> MyTreeNode1:=Items.AddObject(nil,PLI^.name+' '+PLI^.time,PLI);
эту переменную запомни, например в приват секции формы
при изменении списка дочек переприсваивай
MyTreeNode1.Text:= блаблабла
а так работает спасибо, но не до конца как надо:( если бы и обект изменить.
slim (2004-10-29 21:30:00) [4]A AddObject есть щас на него любуюсь
slim (2004-10-29 21:28:00) [5]
type
pPLI=^TPlayListItem;
TPlayListItem=Record
tip:string;
name:string;
path:string;
SoundFile:string;
frameleng:integer;
SoundCanals:integer;
Dispname:string;
vcodec:string;
Time:TTime;
acodec:string;
start,stop:Int64;
end;
да запись
slim (2004-10-29 21:23:00) [6]А как?
шас крыша поедет...
Гаврила (2004-10-29 21:21:00) [7]MyTreeNode1:=Items.AddObject( PLI,PLI^.name+' '+PLI^.time,PLI);
Запомнай в узле и указатель на сам объект
Впрочем....
откуза там крышка "^"
это объект, изи запись?
я так понял, что не эукэмпляр класса
у меня нет delphi под рукой
там вообще разве есть AddObject ???
проверить негде
Rouse_ (2004-10-29 21:18:00) [8]А что изменить значение без всякого запоминания религия не позволяет? ;)
slim (2004-10-29 21:17:00) [9]а с объектом(PLI) как быть? он кроме имени и времени еще кучу инвы несёт которая тоже меняется и потом очень нужна
Гаврила (2004-10-29 21:14:00) [10]
> MyTreeNode1:=Items.AddObject(nil,PLI^.name+' '+PLI^.time,PLI);
эту переменную запомни, например в приват секции формы
при изменении списка дочек переприсваивай
MyTreeNode1.Text:= блаблабла
slim (2004-10-29 21:00:00) [11]не могу я могу добавлять и удалять дочерние узлы и надо сразу скитать и переписывать
Гаврила (2004-10-29 20:39:00) [12]перед добавление родительского узла посчитай сумму