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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 21:23   #1
Darcangel
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 35
По умолчанию treeview

доброго времени суток. Есть вопрос работы с treeview в delphi
задача такая: Есть поля в treeview c каталогами и подкаталогами, нада при нажатии подкаталог выполнять какое нить действие ( к пирмеру присвоить переменной значение).

Просто при нажатии на каталог знаю как зделать, а вот с подкаталогами ещё неработал, пробывал искать в гугле нормальной темы так и не нашёл...
Зарание благадарен за помощь
Darcangel вне форума Ответить с цитированием
Старый 11.12.2011, 23:28   #2
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Попробуйте использовать свойство Parent у узла TreeView. Если его значение не равно nil - значит это подкаталог.
Т.е. обработчик события нажатия все тот же, но при нажатии проверяем является ли нажатый узел дочерним или же он материнский (его свойство Parent = nil).

Вы это хотели узнать?

Последний раз редактировалось kettanaito; 11.12.2011 в 23:43.
kettanaito вне форума Ответить с цитированием
Старый 12.12.2011, 01:28   #3
Darcangel
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 35
По умолчанию

не мне не проверка нада "подкаталог ли" мне нада конкретное нажатие
ну вот к примеру идёт у меня древо

-тема 1
--->содержание
--->задачи
-тема 2
--->содержание
--->Задачи

При нажатии подкаталога темы 1 "содержание" мне необходимо присвоить переменной id значение 1
по другому подкаталогу естественно другое значение (id:=2)

мне эт нада значение чтоб потом выполнить запрос по базе
Darcangel вне форума Ответить с цитированием
Старый 12.12.2011, 09:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну дык
Код:
procedure TForm1.TreeView1Click(Sender: TObject);
begin
..:=TTreeView(sender).Selected.Index;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2011, 14:44   #5
Darcangel
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 35
По умолчанию

Нашёл что искал методом научного тыка ^_-
Вам всем спс Ваши примеры когда нить пригодятся
Проблема была в том что я немогу паравильно сформулировать вопрос
всё было просто

case TreeView1.Selected.AbsoluteIndex of
0: begin end;
1: begin end;
end;
т.е. у каждого коталога и подкаталога есть свой индекс
операясь на это я могу спокойно присвоить переменной значение, которое пойдёт в запрос в базу)
Darcangel вне форума Ответить с цитированием
Старый 13.12.2011, 13:30   #6
flexterful
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 39
По умолчанию

Также можете использовать переменные листьев дерева ImageIndex, StateIndex, SelectedIndex : integer. Это всё для картинок, только мало кто это всё использует, чаще всего только ImageIndex. Туда можно во время проектирования (в едиторе дерева) либо во время заполнения дерева в "рунтайме" записать что надо. А дальше id := TreeView1.Selected.StateIndex;
Чего бы тут сделать, дабы ничего неделать?

Последний раз редактировалось flexterful; 13.12.2011 в 13:36.
flexterful вне форума Ответить с цитированием
Старый 15.12.2011, 17:55   #7
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

Цитата:
Сообщение от Darcangel Посмотреть сообщение
Нашёл что искал методом научного тыка ^_-
Вам всем спс Ваши примеры когда нить пригодятся
Проблема была в том что я немогу паравильно сформулировать вопрос
всё было просто

case TreeView1.Selected.AbsoluteIndex of
0: begin end;
1: begin end;
end;
т.е. у каждого коталога и подкаталога есть свой индекс
операясь на это я могу спокойно присвоить переменной значение, которое пойдёт в запрос в базу)
т.е. если добавится тема нужно будет переписывать прогу?
googl вне форума Ответить с цитированием
Старый 17.12.2011, 04:58   #8
Darcangel
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 35
По умолчанию

не эт просто я написал в общем...
так умя подругому мне интересно было сами индексы treeview

потом у мя идейт запрос в базу по этому индексу что в treeview и когда вэтот индекс есть в базе то выводится страничка
короч вот код:

// Функция поиска и вывода
function zapros(id:Integer; BD:string):string;
begin
Form1.ADOQuery1.Close;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT Hom FROM books WHERE (id = '+inttostr(id)+')');
Form1.ADOQuery1.Open;
zapros:=Form1.ADOQuery1.Fields[0].AsString;
end;

а эт вызов
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if index=0 then
WebBrowser1.Navigate(WideString(Get CurrentDir())+zapros(TreeView1.Sele cted.AbsoluteIndex+1,'books'))
else
WebBrowser1.Navigate(WideString(Get CurrentDir())+zapros(TreeView1.Sele cted.AbsoluteIndex+1,'test'));
end;

крабо код но пайдёт, только начал изучать ^_-
Darcangel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Treeview и бд sisofcase БД в Delphi 8 03.04.2012 17:32
TreeView Progsenya C# (си шарп) 0 28.05.2011 22:19
TreeView HOOCH94 Компоненты Delphi 3 12.04.2011 18:25
TreeView DB_User БД в Delphi 1 23.02.2010 19:09