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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 22:37   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию Связать TreeView с текстовыми файлами

Всем доброго времени суток.

Хочу при клике по пункту дерева загружать опрееделённый текстовый файл, но вот такой код не работает:

Код:
procedure TfrmMain.tvNavigationChange(Sender: TObject; Node: TTreeNode);
var
  CrPath: string;
begin
  case tvNavigation.Selected.AbsoluteIndex of
    0:
      FPath := 'a';
    1:
      FPath := 'b';
    16:
      FPath := 'c';
  end;
  CrPath := ExtractFilePath(Application.ExeName) + 'Data\' + FPath + '\' +
    IntToStr(tvNavigation.Selected.Index) + '\Description.txt';
  if FileExists(CrPath) then
    memDescription.Lines.LoadFromFile(CrPath);
end;
Т.е. сначала я хочу определить какой именно пункт открыт, а потом какой подункт, структура будет только двухуровневая
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 09.10.2010, 23:11   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Если правильно понял, хотя не факт, то вроде вот так:
Код:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
  APath: string;
begin
  case Node.Index {SelectedIndex} of
    0: APath := 'C:\t1.txt';
    1: APath := 'C:\t2.txt';
    2: APath := 'C:\t3.txt';
  end;
  if APath <> '' then
  Memo1.Lines.LoadFromFile(APath);
end;
Если говорите структура 2х двухуровневая, то тогда скорее всего так:
Код:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
  APath: string;
begin
  case Node.SelectedIndex of
    11: APath := 'C:\t1.txt';
    22: APath := 'C:\t2.txt';
    33: APath := 'C:\t3.txt';
  end;
  if APath <> '' then
  Memo1.Lines.LoadFromFile(APath);
end;
Будь проще и люди к тебе потянутся

Последний раз редактировалось spamer; 09.10.2010 в 23:21.
spamer вне форума Ответить с цитированием
Старый 10.10.2010, 11:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
какой именно пункт открыт
А не проще ли связать ветки с именами файла?
Допустим есть TStringList с именами файла. Тогда а поле Data веток записывай индекс строки в этом Листе, и у тебя будет связка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовыми файлами melkaya19 Помощь студентам 3 21.06.2010 11:30
обьясните как связать TreeView и WebBrowser Above_men Помощь студентам 5 30.04.2010 14:41
работа с текстовыми файлами metallldoctor Помощь студентам 0 10.01.2010 15:28
Паскаль_работа с текстовыми файлами Hikari Помощь студентам 5 10.01.2010 10:10
Связать TreeView с Panel Tagroth Компоненты Delphi 6 10.04.2009 23:46