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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2011, 17:16   #1
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
Вопрос Работа с TreeView

Привет всем.
]У меня в TreeView есть пять корневых катологов, мне нужно из подкатолога выделить корневой католог, а затем снова выделить тот католог в котором я был.
Например:
Корневой котолог...
Подкорневой котолог1
Подкорневой котолог2
Подкорневой котолог3
Мне нужно из Подкорневого котолога3 выделить Корневой котолог, а затем снова выделить Подкорневой котолог3.
Как это можно сделать???
DENIS_1992 вне форума Ответить с цитированием
Старый 08.06.2011, 17:36   #2
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от DENIS_1992 Посмотреть сообщение
Привет всем.
]У меня в TreeView есть пять корневых катологов, мне нужно из подкатолога выделить корневой католог, а затем снова выделить тот католог в котором я был.
Например:
Корневой котолог...
Подкорневой котолог1
Подкорневой котолог2
Подкорневой котолог3
Мне нужно из Подкорневого котолога3 выделить Корневой котолог, а затем снова выделить Подкорневой котолог3.
Как это можно сделать???
Может быть есть какой нибудь способ перейти на самый верхний уровень TreeView и там с помощью TreeView1.Select.Item[неоюходимый номер] выделить нужный католог???
DENIS_1992 вне форума Ответить с цитированием
Старый 08.06.2011, 18:03   #3
Repy
 
Регистрация: 03.06.2011
Сообщений: 6
По умолчанию

а параметр MultiSelect не поможет? Или тебе надо при выделении одной ветки, автоматом выделить другую?
Repy вне форума Ответить с цитированием
Старый 08.06.2011, 18:33   #4
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
По умолчанию

Вообще я работаю с реестром. Мне необходимо при создании параметра в ListView как бы обновить реестр, а для этого мне нужно просто выделить в TreeView самый верхний корневой котолог(например корневой католог HKEY_CURRENT_USER), а затем вернуться обратно во вложенный именно в этот корневой католог подкатолог. Использовать AbsolutIndex я не могу, т.к. дерево у меня создается динамически... А можно как нибудь пометить пять корневых катологов и обращаться к ним по особой метке???
DENIS_1992 вне форума Ответить с цитированием
Старый 08.06.2011, 18:41   #5
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Repy Посмотреть сообщение
а параметр MultiSelect не поможет? Или тебе надо при выделении одной ветки, автоматом выделить другую?
Мне необходимо ,например, при изменении имени подкатолога, программно выделить самый верхний раздел, а затем вернуться к переименнованному подразделу...когда у меня был только один корневой котолог, а не пять мой код:
{процедура переименования параметра}
procedure TForm1.N6Click(Sender: TObject);
Var
Str: string;
begin
Try
REG2:= TRegistry.Create;
REG2.RootKey:=HKEY_CURRENT_USER;
REG2.OpenKey(Edit1.Text,true);
InputQuery('Вопрос','Введите новое имя параметра',str);
if str='' then exit;
if ListView1.Selected.Index=-1 then exit;
REG2.RenameValue(ListView1.Selected .Caption,Str);
REG2.CloseKey;
REG2.Destroy;
ListView1.Selected.Delete;
ListView1.Items.Add.Caption:=str;
{блок обновления ListBox}
obn:=TreeView1.Selected.AbsoluteInd ex;
TreeView1.Select(TreeView1.Items[0]);
TreeView1.Select(TreeView1.Items[obn]);
except
on EAccessViolation do
begin
ShowMessage('Вы невыбрали параметр!!!');
Exit;
end;
end;
end;
РАБОТАЛ, но только для одного корневого католога, а теперь у меня их пять!!! не знаю что делать
DENIS_1992 вне форума Ответить с цитированием
Старый 08.06.2011, 19:11   #6
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

я не понял вопроса то есть тебе нужно определить индекс подкаталога и каталога?
mrCloud вне форума Ответить с цитированием
Старый 08.06.2011, 19:15   #7
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

var node:TTreeView;ind,ind2:integer;
.....
if TreeView1.Selected = nil then Exit;
Node := TreeView1.Selected;
if (Node.getFirstChild = nil)and(Node.Parent <> nil) then begin
TreeView1.Select(TreeView1.Items[Node.Parent.Index]);
end

Последний раз редактировалось mrCloud; 08.06.2011 в 19:50.
mrCloud вне форума Ответить с цитированием
Старый 09.06.2011, 00:37   #8
DENIS_1992
Пользователь
 
Регистрация: 29.05.2011
Сообщений: 24
По умолчанию

всем спасибо я уже решил проблему
DENIS_1992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с treeview linuxoid1 Общие вопросы Delphi 1 28.06.2010 09:40
Работа с TreeView Sensizu Общие вопросы Delphi 0 15.06.2010 14:58
работа с treeview street-walker Общие вопросы Delphi 4 10.05.2010 19:13
Работа с TreeView orkus Общие вопросы Delphi 4 06.04.2010 13:56
Работа с TreeView zotox Общие вопросы Delphi 2 18.09.2009 23:00