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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 01:47   #1
Above_men
Пользователь
 
Регистрация: 10.03.2008
Сообщений: 10
Смущение обьясните как связать TreeView и WebBrowser

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

Прошу вашей помоши по TreeView...

Пишу программу справочник, Нужно чтоб выбраный элемент в TreeView загружался в TWebBrowser форме.... В качестве выводимой информации береться html страничка с папки с программой...

До этого работал с listbox'ом... там у меня все получалось... список файлов в листбоксе загонялось в массивы... и если выбран 1 элемент массива.. то открывалась нужная страница в вебброузер элементе...

Тут нужно тоже самое... только я никада раньше неработал с TreeView и никак все не могу 2 день допереть как это сделать...

Знающие люди... помогите пожалуйста.. а то 2 день несплю =(((
Above_men вне форума Ответить с цитированием
Старый 24.05.2009, 11:06   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Можете проверять так, при onClick у TreeView
Код:
procedure TForm6.TreeView1Click(Sender: TObject);
begin
 if TreeView1.Selected.Text = '1' then WebBrowser1.Navigate('http:\\www.programmersforum.ru\');
 if TreeView1.Selected.Text = '2' then WebBrowser1.Navigate('http:\\google.ru\');
end;
Но это очень долго, лучше создайте ini-файл, например такой:
Код:
[Urls]
1=http:\\www.programmersforum.ru\
2=http:\\google.ru\
Добавьте в Uses модуль IniFiles
И потом пишите:
Код:
procedure TForm6.TreeView1Click(Sender: TObject);
var
 urls: TIniFile;
begin
 //if TreeView1.Selected.Text = '1' then WebBrowser1.Navigate('http:\\www.programmersforum.ru\');
 //if TreeView1.Selected.Text = '2' then WebBrowser1.Navigate('http:\\google.ru\');
 urls := TIniFile.Create('D:\Urls.ini');
 try
  if urls.ValueExists('Urls', TreeView1.Selected.Text) then
   WebBrowser1.Navigate(urls.ReadString('Urls', TreeView1.Selected.Text, ''))
  else
   Application.MessageBox('Такого URL в файле нет!', 'Ошибка!', MB_OK or MB_ICONSTOP);
 finally
  urls.Free;
 end;
end;
Тут идет проверка на заголовки элементов. Так что вам надо в ini-файле сделать такие же заголовки, как и в TreeView
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 24.05.2009, 12:20   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

У TreeView к каждому итемсу есть возможность прицепить OBJECT, посмотрите в хэлпе пример TreeView.Items.AddObject или TreeView.Items.AddChildObject.
Никаких ини-файлов, никакой посторонней байды - все однозначно подцепляется к итемсу дерева, может быть использовано, изменено, удалено...
mihali4 вне форума Ответить с цитированием
Старый 24.05.2009, 14:46   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,239
По умолчанию

А ещё есть Data, тип Pointer. Можете структуры или ещё что хранить.
Alter вне форума Ответить с цитированием
Старый 30.04.2010, 14:40   #5
shaman888
 
Регистрация: 05.03.2010
Сообщений: 5
По умолчанию

mihali4,
я попробовал вот так, чтобы открытый в webbrowser файл записывался в treeview, но почему то не работает

Код:
 CaptionStr:String;
 NewNode:TTreeNode;
begin
 CaptionStr:='';
 if not InputQuery('Ввод имени элемента', 'Введите заголовок 
элемента',CaptionStr) then exit;

 NewNode:=TreeView1.Items.AddObject(Treeview1.Selected, CaptionStr, pointer(opendialog1.FileName));
 if NewNode.Parent<>nil then
  NewNode.ImageIndex:=1;
shaman888 вне форума Ответить с цитированием
Старый 30.04.2010, 14:41   #6
shaman888
 
Регистрация: 05.03.2010
Сообщений: 5
По умолчанию

Мало знаком с delphi и мало что пинимаю в этом. В чём ошибка?
shaman888 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связать TreeView с Panel Tagroth Компоненты Delphi 6 10.04.2009 23:46
вывод xml данных из TreeView в webbrowser Dr.XxX Общие вопросы Delphi 1 10.10.2008 12:06
Как связать C++ и Access? demon-189 Общие вопросы C/C++ 1 23.04.2008 19:49
DBChart как связать с БД ? Cantana Помощь студентам 2 02.02.2008 14:40