Форум: "Начинающим";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];
ВнизПоиск по неполному названию в TlistBox Найти похожие ветки
← →
CodeMaster © (2009-05-24 10:57) [0]Здраствуйте, У меня к вам есть небольшой вопрос, а именно как произвести поиск по неполному названию в TListBox.
На DelphiWorld есть статейка:
ListBox1.perform(lb_selectstring,-1,longint(pchar(Edit1.text )));
Эта функция ищет только по полному названию, а мне например нужно:
В ListBox содержится 5 элементов
Маша
Сергей
Василий
Евгений
Кирилл
При вводе в Edit строки "аша", поиск должен найти Маша,
если "илл" то соответсвенно Кирилл. Надеюсь всё понятно разъяснил. . Заранее спасибо =)
← →
Palladin © (2009-05-24 10:59) [1]Pos + F1
← →
dr_creigan (2009-05-24 11:07) [2]сделай ручками: 1 цикл и Pos. Я так уже делал, только вот задача была посложнее: список содержал элементы и еще информацию к ним в чередующемся виде.
Еще 1 совет: нулевую строчку не используй, то есть в ней должно быть написано, что угодно, а вся основная инфа ниже.
← →
CodeMaster © (2009-05-24 11:10) [3]А можно как-то поконкретней, а то я не пойму что значит Pos + F1.
← →
dr_creigan (2009-05-24 11:20) [4]F1 -справка
Pos - основная функция, которой предлагают пользоваться.
типа такого будет: String h="123456";
Integer k;//я паскаль плохо знаю, поэтому извиняй за ошибки
k:=h.Pos("23");
Я бы вот как сделал в твоем случае(пишу на с++ - переведешь на делфи сам):
String j=Edit1->Text, k;
for(int i=0;i<ListBox1->Items->Count;i++){
k=ListBox1->Items->Strings[i];//вроде так))))
if(k.Pos("j")!=0){
//делаем то, что тебе нужно. например, можно создать динамический массив
//в самом начале и уже туда записывать значения позиций строчек, ну или
//еще что-нибудь
}
}
← →
Palladin © (2009-05-24 11:21) [5]Это значит зайди в редактор (надеюсь тебе это слово знакомо) Делфи, который находится в IDE (IDE это такая штучка, которая появляется перед тобой когда ты запускаешь Делфи). Поставь курсор редактирования в любое место, далее нажми последовательно следующие клавиши "P" ("З"э русская, 11 клавиша если считать слева на право в третьем если считать сверху ряду), "o" ("щ" русская, 10 клавиша если считать слева на право в третьем если считать сверху ряду, рядышком с предыдущей ), "s" ("ы" русская, третья клавиша если считать слева на право в четвертом если считать сверху ряду). После того как этот подвиг будет совершон, останется не менее сложная часть, найти клавишу которая подписана сразу ДВУМЯ значками, первый значек "F", он может показатся тебе незнакомым, но поверь мне, он есть. И второй значек на нем это циферка "1", клавиша эта вторая если считать слева направо в первом если считать сверху ряду. Если ты с этим справишься перед тобой возникнет куча непонятных значков, их дешифрация и восприятие уже зависит от твоего интеллекта и жажды познания.
← →
dr_creigan (2009-05-24 11:24) [6]Palladin, хорош над новичками стебаться=))))))))))))))))))
← →
CodeMaster © (2009-05-24 11:32) [7]
> Palladin © (24.05.09 11:21) [5]
>
> Это значит зайди в редактор (надеюсь тебе это слово знакомо)
> Делфи, который находится в IDE (IDE это такая штучка, которая
> появляется перед тобой когда ты запускаешь Делфи). Поставь
> курсор редактирования в любое место, далее нажми последовательно
> следующие клавиши "P" ("З"э русская, 11 клавиша если считать
> слева на право в третьем если считать сверху ряду), "o"
> ("щ" русская, 10 клавиша если считать слева на право в третьем
> если считать сверху ряду, рядышком с предыдущей ), "s" ("ы"
> русская, третья клавиша если считать слева на право в четвертом
> если считать сверху ряду). После того как этот подвиг будет
> совершон, останется не менее сложная часть, найти клавишу
> которая подписана сразу ДВУМЯ значками, первый значек "F",
> он может показатся тебе незнакомым, но поверь мне, он есть.
> И второй значек на нем это циферка "1", клавиша эта вторая
> если считать слева направо в первом если считать сверху
> ряду. Если ты с этим справишься перед тобой возникнет куча
> непонятных значков, их дешифрация и восприятие уже зависит
> от твоего интеллекта и жажды познания.
Конечно спасибо за такие подробности, но можно было и не так подробно.
> dr_creigan (24.05.09 11:24) [6]
>
> Palladin, хорош над новичками стебаться=))))))))))))))))))
>
6 лет на Delphi работаю.
← →
dr_creigan (2009-05-24 11:34) [8]прикинь, у меня такие же завихрени бывают)))
>6 лет на Delphi работаю.
пишешь-пишешь, думаешь, что отлично язык знаешь, а тут на тебе....
с портами случаем работать не умеешь?
← →
CodeMaster © (2009-05-24 11:36) [9]
> dr_creigan (24.05.09 11:34) [8]
>
> прикинь, у меня такие же завихрени бывают)))
> >6 лет на Delphi работаю.
> пишешь-пишешь, думаешь, что отлично язык знаешь, а тут на
> тебе....
> с портами случаем работать не умеешь?
Нет не умею, я только работаю со звуком.
← →
CodeMaster © (2009-05-24 11:38) [10]
> dr_creigan (24.05.09 11:20) [4]
>
> F1 -справка
>
> Pos - основная функция, которой предлагают пользоваться.
>
> типа такого будет: String h="123456";
> Integer k;//я паскаль плохо знаю, поэтому извиняй за ошибки
> k:=h.Pos("23");
>
> Я бы вот как сделал в твоем случае(пишу на с++ - переведешь
> на делфи сам):
> String j=Edit1->Text, k;
> for(int i=0;i<ListBox1->Items->Count;i++){
> k=ListBox1->Items->Strings[i];//вроде так))))
> if(k.Pos("j")!=0){
> //делаем то, что тебе нужно. например, можно создать динамический
> массив
> //в самом начале и уже туда записывать значения позиций
> строчек, ну или
> //еще что-нибудь
> }
> }
>
Спасибо за разъяснение, тут впринципе всё предельно понятно - только есть одна неточность ListBox1->Items->Strings[i] можно записать как ListBox1->Items[i] =)
← →
dr_creigan (2009-05-24 12:21) [11]это не неточность)), а 1 из вариантов написания))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.07.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.003 c