C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Продолжаем поиск
Jess
  Отправлено: 23.12.2003, 02:29


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Привет всем....подниму тему поиска ещё раз...
поиск реализован так:
for (int i=0; iItems->Count; i++){
if ( TreeView1->Items->Item[i]->Text.SubString(1, Edit2->Text.Length()).UpperCase() == Edit2->Text.UpperCase()){
TreeView1->Select(TreeView1->Items->Item[i]);
break;
}}
НО находя первую нужную страницу, дальше не хочет искать(по-ходу из-за брейка)...а как дать проге понять, что при нажатии ещё раз на кнопку искать дальше ту-же комбинацию что задана???
и фокус выделял-бы, то-что нашёл в treeview'e..........
Спасибо за ранее...................................
Nick
Отправлено: 23.12.2003, 08:59


Машинист паровоза

Группа: Участник
Сообщений: 247



Замени i=0 на i=Следущий итем
** Jess
Отправлено: 24.12.2003, 03:05


Не зарегистрирован







пользователь тыкнул на поиск нашёл что-то, второй раз тыкнул — нашёл тот-же текст только дальше...и т.д.
приведи или алгоритм или часть кода...
а то чо-то Я не догнал............sad.gif
Nick
Отправлено: 24.12.2003, 09:16


Машинист паровоза

Группа: Участник
Сообщений: 247




int startSearch = 0;

void Search( )
{

int i;

for (i=startSearch; iItems->Count; i++){
if ( TreeView1->Items->Item[i]->Text.SubString(1, Edit2->Text.Length()).UpperCase() == Edit2->Text.UpperCase()){
TreeView1->Select(TreeView1->Items->Item[i]);
break;
}}

startSearch = i+1; // может +1 не надо

};
startSearch объяви вне процедуры и обнуляй при новом условии поиска.
** Jess
Отправлено: 26.12.2003, 01:31


Не зарегистрирован







Спасибо брат, помог нормально......smile.gif
Закрываю тему.......

Вернуться в Вопросы программирования в C++Builder