Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2010, 22:04   #1
iiunbreakableii
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 89
По умолчанию Запись дополнтельной информации в узлы TreeView

Помогите пожалуйста записать в узлы TreeView дополнительную инфу
написал рекурсивную функцию:
Код:
procedure TForm1.Search(path: string; node : TtreeNode);
var
  sr : TSearchRec;
begin
  if FindFirst(Path + '\*.*', faAnyFile, sr) = 0 then
  repeat
    if (sr.Name[1] <> '.') then
      if ((sr.Attr and faDirectory) = faDirectory) then
        Search(path+'\'+sr.Name,TreeView1.Items.AddChild(node,sr.Name));
      else
        TreeView1.Items.AddChild(node,sr.Name);
  until FindNext(sr) <> 0;
end;
что-то не соображу как теперь записать в каждый узел в параметр Data путь к файлу. Подскажите, если не трудно. спасибо!
iiunbreakableii вне форума Ответить с цитированием
Старый 14.02.2010, 22:48   #2
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Делается таким образом:

Код:
procedure TForm1.Search(path: string; node : TtreeNode);
var
  sr : TSearchRec;
begin
  if FindFirst(Path + '\*.*', faAnyFile, sr) = 0 then
  repeat
    if (sr.Name[1] <> '.') then
      if ((sr.Attr and faDirectory) = faDirectory) then
        Search(path+'\'+sr.Name,TreeView1.Items.AddChild(node,sr.Name));
      else
        with TreeView1.Items.AddChild(node,sr.Name) do
        begin
          Data := AllocMemory( ( Length( Path ) + Length( sr.Name ) + 2 ) * SizeOf( Char ) );
          StrPCopy( Data, Path + '\' + sr.Name );
        end;
  until FindNext(sr) <> 0;
end;
А доступ к пути осуществляется так:
Код:
var
  Path : String
...
  Path := PChar(TreeView1.Items[ Index ].Data);
Перед очисткой TreeView1 или перед удалением отдельных веток TreeView не забывай освобождать память, занятую под путь:
Код:
  FreeMem( TreeView1.Items[ Index ].Data );
maxionans вне форума Ответить с цитированием
Старый 14.02.2010, 22:56   #3
iiunbreakableii
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 89
По умолчанию

ok, spasibo!
iiunbreakableii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись информации из файла в мемо Delphi DEFENEK Помощь студентам 2 19.09.2009 22:09
Запись в один файл большого количества информации pregmatch Общие вопросы C/C++ 5 09.03.2009 14:09
ввод информации с клавиутуры в двумерный масив, запись информации с масива в файл x_omega_x Помощь студентам 1 29.12.2008 02:30
Treeview forzi Помощь студентам 4 04.05.2008 23:50
Запись аудио, видео информации на CD, DVD Virtson Общие вопросы Delphi 2 11.01.2007 19:50