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

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

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]

перед добавление родительского узла посчитай сумму


Наверх

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