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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2010, 23:53   #1
Dgriz
Новичок
Джуниор
 
Регистрация: 29.12.2010
Сообщений: 1
По умолчанию Treeview

Delphi

при нажатии на одном из вкладок, а точнее item
загружался rtf файл в richview

например если дерево
-Кулинария -> 1ое -> Борш(б)
|-> 2ое -> Макароны(м)
чтобы при нажатии на Б и М, происходила загрузка файла)

можно поподробней, а то я новичок в этом)

Последний раз редактировалось Dgriz; 30.12.2010 в 00:11.
Dgriz вне форума Ответить с цитированием
Старый 30.12.2010, 00:38   #2
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
Подмигивание

Теперь по подробнее =))):

Код:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
{ продцедура вызывается при выборе узла в древе
 ВАЖНО! При клике уже выбранного срабатывать не будет =) }
begin
{Проверяем уровень узла (нода)
В моей реализации узлы 1-ого уровня являются теме кто задает файл для РичЭдита
В принципе, если по этой "статье" проходят все узлы не имеющие детей то можно 
реализовать по другому (смотри ниже)
}
  if Node.Level = 1 then
  begin
{ дергаем адрес файла из свойства Data нода 
про это по подробнее:
http://www.az-design.ru/index.shtml?Support&SoftWare&Delphi/D3/SB19Data
}
    RichEdit1.Lines.LoadFromFile(String(Node.Data));
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
{нуу.. в with наверно знаком =))
по подробнее
http://www.delphibasics.ru/With.php
}
  with TreeView1.Items do
  begin
{
cоздаю с начала нод 0-ого уровня: AddChild(nil, '1ое')
потом создаю его "ребенка", причем с данными
}
    AddChildObject(AddChild(nil, '1ое'), 'БОРШ', PChar('d:\temp\1.rtf'));
  end; {with}
end;
где 'd:\temp\1.rtf' адрес твоего файла


Пример для всех узлов без "детей"
Код:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  if (Node.getFirstChild = nil) and (Node.data <> nil) then
  begin
    RichEdit1.Lines.LoadFromFile(String(Node.Data));
  end;
end;
Помог? Ну так нажми на весы!

Последний раз редактировалось SNUPY; 30.12.2010 в 17:30. Причина: Сделал по подробнее =)
SNUPY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView IICuX123 Общие вопросы .NET 9 19.11.2011 01:47
TreeView DB_User БД в Delphi 1 23.02.2010 19:09
TreeView Claster Помощь студентам 0 20.10.2009 15:41
TreeView и БД Constellation БД в Delphi 12 27.09.2008 15:22