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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2011, 20:50   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию Incremental Search в Virtual Treeview

Доброго времени суток.
Не могли бы вы привести пример Incremental Search для компонента Virtual Treeview? Свойства поиска открыты в самом компоненте, но как этот самый поиск реализуется не могу понять. Функции такой нет, как и процедуры. Обыскал все форумы, везде пишут, что поиск работает отлично, есть проблемы только с чувствительностью к реестру букв.

Как реализуется этот поиск? У меня на форме есть Virtual Treeview и эдит. При вводе в эдит узлы в тривью должны прятаться, оставляя только похожие на результат узлы. Но мне хотя бы понять эту функцию...

Заранее спасибо.
kettanaito вне форума Ответить с цитированием
Старый 20.11.2011, 23:49   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Попробую вам помочь... Из моего проекта
http://www.programmersforum.ru/attac...0&d=1289064136
Там поиск именно так организован...
Код:
procedure Tfmain.EFindChange(Sender: TObject); //EFind - это простой эдит, куда вводим строку поиска
var i: integer;
begin
//if start then
//exit;
//Peek('menutick.wav');
//DBAnswMemo.Clear;
EFind.Enabled:=False; //это запрещаем вносить изменения в поисковую строку, пока ищем на данном этапе
LBFound.Clear; //LBFound - это листбокс, куда "складываем найденное
LBFound.Enabled:=False;
for i:=0 to TreeView.Items.Count-1 do
begin
//if PMyRec(TreeView.Items.Item[i].Data)^.LName='Quest' then
if Pos(AnsiUpperCase(EFind.Text),AnsiUpperCase(TreeView.Items.Item[i].Text))>0 then
LBFound.Items.AddObject(TreeView.Items.Item[i].Text,TreeView.Items.Item[i]);
Application.ProcessMessages;
end;
LBFound.ItemIndex:=0;
LBFound.Enabled:=True;
LBFound.ClearSelection;
//if GBFinder.Visible then
//begin
EFind.Enabled:=True;
EFind.SetFocus;
EFind.SelStart:=Length(EFind.Text);
//end;
Application.ProcessMessages;
end;
Где-то так... Может, и пропустил что-то ненужное... Или не закомментировал...

Последний раз редактировалось mihali4; 20.11.2011 в 23:53.
mihali4 вне форума Ответить с цитированием
Старый 21.11.2011, 02:20   #3
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

mihali4, ваш пример очень хорош, спасибо вам большое. Не знаю смогу ли я переделать его под Virtual Treeview, т.к. там нет понятия items (в добавок ко всему мой алгоритм добавления узлов таков, что в неактивном состоянии самые последние материнские узлы пусты, пока не будут открыты). Я постараюсь..
kettanaito вне форума Ответить с цитированием
Старый 21.11.2011, 16:32   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

В чем смысл использования вами левого компонента Virtual Treeview ?
Может, проще добавить к оригиналу то, чего вам не хватает ?
mihali4 вне форума Ответить с цитированием
Старый 21.11.2011, 22:19   #5
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

mihali4, тут скорее не в компоненте проблема... У меня древо, в котором должен производится поиск, пустое. В корневом узле отображаются пару дочерних узлов. У этих дочерних узлов нет ChildNodes, но они добавляются при двойному клику на этот дочерний узел. Искать то, чего нет, это вряд ли выйдет...

А можно ли таким же образом реализовать поиск по компьютеру в целом? Или по выбранным директориям? (В фоновом для пользователя режиме)
kettanaito вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Virtual Treeview и несколько изображений grafgrial Общие вопросы Delphi 2 04.07.2011 19:57
ошибка incremental link the_deer_one Общие вопросы C/C++ 1 25.08.2010 16:54
Virtual TreeView Шульц Общие вопросы Delphi 3 25.10.2009 09:48
Virtual Treeview проблемы с мышкой xansolo100 Общие вопросы Delphi 1 07.09.2009 01:49
Virtual Treeview iLya84a Компоненты Delphi 3 01.08.2008 12:49