Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];

Вниз

как в TreeView запомнить на какой позиции находится выделение   Найти похожие ветки 

 
kirat ©   (2009-06-22 14:36) [0]

Доброе времени суток. Подскажите, пожалуйста, как в TreeView запомнить на какой позиции находится выделение и после обновления дерева выделить ту же запись


 
Palladin ©   (2009-06-22 14:39) [1]

собсна нужно просто запомнить путь к пункту...


 
Palladin ©   (2009-06-22 14:45) [2]

а для того что бы это сделать корректно, необходимо каждому пункту иметь какой то внешний ключ, уникальный хотя бы в пределах ветки


 
kirat ©   (2009-06-22 15:00) [3]

Ну вот:
procedure TForm4.TreeViewDblClick(Sender: TObject);
var
 sPath: string;
 begin
label1.Caption := SrNodeTree(TreeView.Selected, sPath);
end;

function TForm4.SrNodeTree(pTreeNode: TTreeNode;
 var sRuta: string): string;
begin
sRuta := pTreeNode.Text + " > " + sRuta;
 if pTreeNode.Level = 0 then Result := sRuta
 else
   Result := SrNodeTree(pTreeNode.Parent, sRuta);

end;

Узнал я полный путь. Но как потом вернуть курсор туда же?


 
Palladin ©   (2009-06-22 15:04) [4]

в обратном порядке


 
Сергей М. ©   (2009-06-22 15:05) [5]


> как потом вернуть курсор туда же?


нужно написать процедуру, которая осуществляет разбор строки, содержащей путь..


 
kirat ©   (2009-06-22 15:16) [6]

Подскажите пожалуста хоть какой процедурой переместить!


 
Palladin ©   (2009-06-22 15:18) [7]

TTreeNode.Selected


 
kirat ©   (2009-06-22 15:21) [8]

А Node где указать?


 
Palladin ©   (2009-06-22 15:22) [9]

его не нужно указывать, его нужно найти


 
kirat ©   (2009-06-22 15:28) [10]

Вы конечно извините ну пожалуйста покажите на примере.
Вот мне, например, известно, что путь по моему дереву "Дерево2-Ветка3"
Как мне Выделить Ветку3 программно.


 
Palladin ©   (2009-06-22 15:31) [11]

Pos + F1
Copy + F1
For + F1
TTreeNode.Count + F1
TTreeNode.Item + F1

ну я не понимаю, трудно что ли в справку посмотреть на предмет состава?


 
Сергей М. ©   (2009-06-22 15:36) [12]

В лесу искать Дерево2.
Если найдено, то на нем искать Ветка3.


 
kirat ©   (2009-06-22 15:43) [13]

Нахожу я и дерево и ветку а как его ВЫДЕЛИТЬ?


 
Сергей М. ©   (2009-06-22 15:44) [14]


> как его ВЫДЕЛИТЬ?


Лес.Selected := то_что_ты_нашел


 
Palladin ©   (2009-06-22 15:48) [15]


> kirat ©   (22.06.09 15:43) [13]

а в [7] я кому интересно написал? Сержу?


 
kirat ©   (2009-06-22 15:51) [16]

Сергей М.

> Лес.Selected := то_что_ты_нашел

Вот спасибо!


 
kirat ©   (2009-06-22 15:52) [17]

Palladin я просто не понял что написать после =
Спасибо и извените сли что не так! =)


 
kirat ©   (2009-06-22 16:22) [18]

Все отлично у меня выделяет но если я дерево заново перестраиваю не выделяет.
tt:=TreeView.Selected;
TreeViewUpdate;
TreeView.Selected:=tt;

а вот так нормально
tt:=TreeView.Selected;
TreeView.Selected:=tt;


 
kirat ©   (2009-06-22 16:24) [19]

TreeViewUpdate:
TreeView.Items.Clear;
for i2:=1 to j2 do
       begin
         node2:= TreeView.Items.AddChild(node,asstring);
       
       end;


 
clickmaker ©   (2009-06-22 16:54) [20]

> [18] kirat ©   (22.06.09 16:22)

tt - это адрес в памяти выделенной ветки.
после апдейта она живет уже по другому адресу


 
Ega23 ©   (2009-06-22 16:54) [21]


> TreeView.Items.Clear;


Ещё бы.

Вот представь. У тебя книга. Ты заложил её закладкой на 254 странице.
Потом вырвал все страницы. Потом напихал туда новых (возможно и в другом порядке). И ты хочешь, чтобы у тебя "само" получилось, что на 254 странице та же закладка?


 
kirat ©   (2009-06-22 16:56) [22]

Все. Всем грамадное спасибо! Тема закрыта!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.011 c
6-1205445645
ifrau Randt
2008-03-14 01:00
2009.08.16
NMHTTP


15-1245181636
man from earth
2009-06-16 23:47
2009.08.16
а я например верю в лунатиков и в теории заговоров


2-1245237512
TheEd
2009-06-17 15:18
2009.08.16
Как принудительно "убить" InplaseEditor в StringGride


2-1244796506
b/@.
2009-06-12 12:48
2009.08.16
Как правильно определять версию файла ?


15-1245341259
Кто б сомневался
2009-06-18 20:07
2009.08.16
Speed Gear - ускоритель или замедлитель 3D игр - принцип работы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский